RDD(Resilient Distributed Dataset) 弹性分布式数据集
RDD的三种基本特性
- Transformation 转换运算
- 一个RDD转换会产生另外一个RDD
- 转换操作时懒惰式的,就是说它不会立刻执行,它等到‘动作’运算才会实际执行
- Action 动作运算
- 动作运算不会产生RDD,而是会产生数值、数值或者写入文件。(结果产生式运算)
- 动作运算会立刻被执行,并且会带动之前的转换运算一起执行
- Persistence 持久化
- 对于重复使用次数多的RDD,可以将其持久化在内存中供后续使用。
RDD转换运算-Transformation
- 创建RDD:
- sc.parallelize(py_collection): 将python容器类转化为一个RDD
- sc.textFile(src): 读取hdfs或者本地文件转化为一个RDD
sc.parallelize([1,2,3,4,5,6]).collect()
[1, 2, 3, 4, 5, 6]
- rdd.map(func) : 对rdd中每一个元素执行一遍func函数,返回一个新的rdd表示结果
intrdd = sc.parallelize([1,2,3,4,5,6])
ansrdd = intrdd.map(lambda x:x*2)
ansrdd.collect()
[2, 4, 6, 8, 10, 12]
intrdd = sc.parallelize([[1,