起因

大数据时代

大数据最近太热了,其主要有数据量大(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的更多相关文章

  1. CS100.1x Introduction to Big Data with Apache Spark

    CS100.1x简介 这门课主要讲数据科学,也就是data science以及怎么用Apache Spark去分析大数据. Course Software Setup 这门课主要介绍如何编写和调试Py ...

  2. Introduction to Spring Data MongoDB

    Introduction to Spring Data MongoDB I just announced the new Spring 5 modules in REST With Spring: & ...

  3. Introduction to Structured Data

    https://developers.google.com/search/docs/guides/intro-structured-data Structured data refers to kin ...

  4. Introduction to Big Data with Apache Spark 课程总结

    课程主要实用内容: 1.spark实验环境的搭建 2.4个lab的内容 3.常用函数 4.变量共享   1.spark实验环境的搭建(windows)   a. 下载,安装visualbox 管理员身 ...

  5. 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 ...

  6. 【转】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 ...

  7. Python For Data Analysis -- Pandas

    首先pandas的作者就是这本书的作者 对于Numpy,我们处理的对象是矩阵 pandas是基于numpy进行封装的,pandas的处理对象是二维表(tabular, spreadsheet-like ...

  8. 【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 ...

  9. 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 ...

随机推荐

  1. Win7系统安装 Photoshop CC 中文完全破解版

    Win7系统安装 Photoshop CC 中文完全破解版 谨以此教程献给某位做UI设计的朋友^_^! 01. 确定自己的系统是32位的还是64位的,本人电脑是64位 02. 将 Photoshop_ ...

  2. url用法

    url中的name用法: 0.定义主rul.py urlpatterns = [ url(r'^sinfors/', include('sinfors.urls', namespace="s ...

  3. Hadoop HBase概念学习系列之模式设计(十)

      Hbase与RDBMS的区别在于:HBase的Cell(每条数据记录中的数据项)是具有版本描述的(versioned),行是有序的,列(qualifier)在所属列簇(Column familie ...

  4. 开源作业调度框架 - Quartz.NET - 实战使用1

    简介: 第一步:下载Quartz.NET 下载Quartz.NET只需要打开网址选择适宜的版本进行下载解压缩即可. 目前最新版本是2.3.3,压缩包为6MB,不过鉴于国内网速.我还是加一下博客园的下载 ...

  5. * args 和 **kwargs

    def func(*args, **kwargs): print(args,kwargs) func("对", "哦",o=4, k=0) 结果---> ...

  6. [转]Hadoop 读写数据流

    Hadoop文件读取 1)客户端通过调用FileSystem对象中的open()函数来读取它做需要的数据.FileSystem是HDFS中DistributedFileSystem的一个实例. 2)D ...

  7. Python time.md

    time模块 Comparing Clocks time.clock():在Unix 上,返回当前的处理器时间,以浮点数秒数表示. time.monotonic():返回一个单调时钟的值(在分秒内), ...

  8. AE-----合成

    AE-----合成 大纲:

  9. Docker实战(一)之使用Docker镜像

    镜像是Docker三大核心概念中最为重要的,自Docker诞生之日起“镜像”就是相关社区最为热门的关键字. Docker运行容器前需要本地存在对应的镜像,如果镜像没有保存至本地,Docker会尝试先从 ...

  10. python list 使用技巧

    格式:list[start:stop:step] 示例:a =list(range(0,10))print(a[1:8:2]) #[1, 3, 5, 7]print(a[:8:2]) #[0, 2, ...