基本概念介绍

首先介绍一下spark中常见的基本概念:

  • RDD:弹性分布式数据集的简称,是一个分布式对象集合,「本质上是一个只读的分区记录集合。不能直接修改,只能通过一定的转换操作(map, reduce, join, group by)来创建新的RDD。」

  • DAG:有向无环图,反应了RDD之间的依赖关系。

  • Executor:一个进程,负责运行任务。

  • Application:用户编写的spark应用程序。

  • Task:运行在Excutor上的工作单元。

  • Job:一个job包含多个RDD以及对应的RDD上的各种操作。

  • Stage:作业的基本调度单位。一个作业会被分为多组Task,每组任务称为一个stage。

其中,RDD是一种高度受限的内存模型,一次只能对RDD全集进行修改。听完上述说明,大家可能理解起来很抽象,接下来我将介绍RDD编程模型,并通过程序例子来说明,方便大家理解。

RDD编程例子

1. 从文件系统中加载数据并转化成RDD格式

下面的例程可以将文本文件转化成RDD数据格式读入,便于Spark对RDD数据并行处理。

from pyspark import SparkConf, SparkContext
sc = SparkContext()
# 可以通过sc.textFiles来将text文件转化成RDD格式的数据。
# 如果是本地文件, 要加上 "file:///"
lines = sc.textFiles(&

更多推荐

PySpark基本入门(附python代码示例)