Introduction to Big Data with PySpark
起因
大数据时代
大数据最近太热了,其主要有数据量大(Volume),数据类别复杂(Variety),数据处理速度快(Velocity)和数据真实性高(Veracity)4个特点,合起来被称为4V。
大数据中的数据量非常巨大,传统的关系型数据库已经无法满足对大数据的处理要求。此时,分布式计算应运而生。分布式计算就是把一组计算机通过网络相互连接组成分散系统,然后将需要处理的大量数据分散成多个部分,交由分散系统内的计算机组同时计算,最后将这些计算结果合并得到最终的结果。
过去,分布式计算理论比较复杂,技术实现比较困难,因此在处理大数据方面,集中式计算一直是主流解决方案。2003年到2004年间,Google发表了MapReduce、GFS(Google File System)和BigTable三篇技术论文,提出了一套全新的分布式计算理论。此三篇论文也就成了分布式计算的技术核心。
三大分布式计算框架
由于Google没有开源Google分布式计算模型的技术实现,所以其他互联网公司只能根据Google三篇技术论文中的相关原理,搭建自己的分布式计算系统。目前的主要三大分布式计算框架分别是Hadoop,Spark和Storm。
Yahoo的工程师Doug Cutting和Mike Cafarella在2005年合作开发了分布式计算系统Hadoop。尽管和Google内部使用的分布式计算系统原理相同,但是Hadoop在运算速度上依然达不到Google论文中的标准。但是Hadoop的开源特性使其成为分布式计算系统的事实上的国际标准。而Storm主要用于在线实时计算,这里不多介绍。
Spark也是Apache基金会的开源项目,它由加州大学伯克利分校的实验室开发。它在Hadoop的基础上进行了一些架构上的改良。Spark与Hadoop最大的不同点在于,Hadoop使用硬盘来存储数据,而Spark使用内存来存储数据,因此理论上Spark可以提供超过Hadoop 10到100倍的运算速度。
PySpark
这里选择了PySpark介绍,主要原因是Scala学习成本高,可读性不如Python,Java写起来太难看。相比之下,PySpark简直是入门Spark首选。但是网上PySpark的资料实在有限,包括相关书籍大部分也是用Scala。而我在学习过程中除了看PySpark官网API,也碰到了两门非常好的公开课:BerkeleyX的CS100.1x和BerkeleyX的CS190.1x,这两门公开课均来自于edX。不过由于可能改版,我这里介绍的这两门课已经无法注册学习,新改版的课分成了三门,大家有兴趣看看啥时候开课了可以选一下,地址如下。
内容简介
本系列博客的内容均来源自BerkeleyX的CS100.1x和BerkeleyX的CS190.1x,这两门课程名分别叫Introduction to Big Data with Apache Spark和Scalable Machine Learning。
内容安排
本系列博客的顺序会以课程的顺序讲解。课程内容不是我们这里的重点,我会以一篇博客来把一门课程的内容挑重点总结。作业将直接以ipynb文件名命名。
博客的重点
本系列博客主要讲应用,也就是代码层面会介绍的比较多,所以有关Spark系统方面的知识,我在这里不会过多的涉及到,但是会介绍一些基本的概念给大家,这些知识会足够用到实际应用。
实际应用
本系列博客的实际应用均来自其作业。两门可能均有5次大作业,难度循循渐进,非常适合入门和学习。
github
我会把相关作业的ipynb文件放到我的github,方便大家下载了自己学习。
Introduction to Big Data with PySpark的更多相关文章
- CS100.1x Introduction to Big Data with Apache Spark
CS100.1x简介 这门课主要讲数据科学,也就是data science以及怎么用Apache Spark去分析大数据. Course Software Setup 这门课主要介绍如何编写和调试Py ...
- Introduction to Spring Data MongoDB
Introduction to Spring Data MongoDB I just announced the new Spring 5 modules in REST With Spring: & ...
- Introduction to Structured Data
https://developers.google.com/search/docs/guides/intro-structured-data Structured data refers to kin ...
- Introduction to Big Data with Apache Spark 课程总结
课程主要实用内容: 1.spark实验环境的搭建 2.4个lab的内容 3.常用函数 4.变量共享 1.spark实验环境的搭建(windows) a. 下载,安装visualbox 管理员身 ...
- Introduction to Structured Data json的2种形式 JAVA解析JSON数据 - JsonArray JsonObject
https://developers.google.com/search/docs/guides/intro-structured-data Structured data refers to kin ...
- 【转】The most comprehensive Data Science learning plan for 2017
I joined Analytics Vidhya as an intern last summer. I had no clue what was in store for me. I had be ...
- Python For Data Analysis -- Pandas
首先pandas的作者就是这本书的作者 对于Numpy,我们处理的对象是矩阵 pandas是基于numpy进行封装的,pandas的处理对象是二维表(tabular, spreadsheet-like ...
- 【Repost】A Practical Intro to Data Science
Are you a interested in taking a course with us? Learn about our programs or contact us at hello@zip ...
- 100 open source Big Data architecture papers for data professionals
zhuan :https://www.linkedin.com/pulse/100-open-source-big-data-architecture-papers-anil-madan Big Da ...
随机推荐
- Error:Could not find com.android.tools.build:gradle:3.0.0
Error:Could not find com.android.tools.build:gradle:3.0.Searched in the following locations: file ...
- cxfreeze打包python程序的方法说明(生成安装包,实现桌面快捷方式、删除快捷方式)
一.cxfreeze基础 1.cxfreeze功能 python代码文件转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller,这三种方式各有千秋,本人只用过py2exe和 ...
- [EffectiveC++]item26:尽可能延后变量定义式的出现时间
- AOP-方法拦截器-笔记
方法拦截器的继承层次图: 这些拦截器具体长什么样?? 一.MethodBeforeAdviceInterceptor 这个拦截器只有一个属性就是前置通知.需要注意的是前置通知和返回通知的拦截器才会持有 ...
- [SHOI2008]小约翰的游戏
题目 不会,抄论文 这是一个非常牛逼的东西,叫做\(anti\)博弈,就是进行最后一次操作的人输 我们考虑一下这道题 显然如果石子个数都是\(1\),那么有奇数堆石子先手必败,有偶数堆石子先手必胜 如 ...
- mysql 去除特殊字符和前后空白字符
mysql 去除特殊字符 update table set field = replace(replace(replace(field,char(9),''),char(10),''),char(13 ...
- virtualbox+vagrant学习-2(command cli)-4-vagrant global-status命令
Global Status 格式: vagrant global-status 这个命令将告诉你当前登录的用户系统上所有活跃的vagrant环境的状态. userdeMacBook-Pro:~ use ...
- 百度图表库ECharts
本文主要包含ECharts的介绍和教程.关于ECharts的应用就不多了,像经营状况.收支情况.数据分析等都需要以图表的形式展现,因为这样更直观. 一.介绍 ECharts,一个使用 JavaScri ...
- js之checkbox判断常用示例
checkbox常用示例可参考: 关于checkbox自动选中 checkbox选中并通过ajax传数组到后台接收 MP实战系列(十三)之批量修改操作(前后台异步交互) 本次说的是,还是关于智能门锁开 ...
- DOM几个重要的函数
最近在读js编程艺术,发现几个不错的函数,总结如下: 1.页面初始化加载函数onload 操作DOM的函数应该在页面元素初始化结束之后再立即执行,否则页面元素还没有初始化完成,DOM操作就会搁浅了:网 ...