RDD
1.用户可以使用两种方法创建RDD:读取一个外部数据集,或在驱动器程序里分发驱动器程序中的对象集合(比如list 和set)。
1.1读取一个外部数据集
在本书前面的章节中已经见过使用SparkContext.textFile() 来读取文本文件作为一个字符串RDD 的示例.
lines = sc.textFile("README.md")
1.2在驱动器程序中对一个集合进行并行化。
创建RDD 最简单的方式就是把程序中一个已有的集合传给SparkContext 的parallelize()
方法。
除了开发原型和测试时,这种方式用得并不多,毕竟这种方式需要把你的整个数据集先放在一台机器的内存中。
Python 中的parallelize() 方法
lines = sc.parallelize(["pandas", "i like pandas"])
Scala 中的parallelize() 方法
val lines = sc.parallelize(List("pandas", "i like pandas"))
2.创建出来后,RDD 支持两种类型的操作: 转化操作(transformation) 和行动操作
(action)
RDD 的转化操作是返回一个新的RDD 的操作,比如map() 和filter(),而行动操作则是向驱动器程序返回结果或把结果写入外部系统的操作,会触发实际的计算,比如count