Spark入门(Python)--1.2 RDD操作

转化操作:

RDD的转化操作是返回新的RDD的操作。转化出来的RDD是惰性求值的,只有在行动操作中用到时才会被计算。
转化操作虽然是惰性求值的,但是可以通过运行行动操作强制执行,比如count(),这种方法可以用于测试代码。

示例:filter()过滤

rdd = sc.textFile("D:/log.txt") sundayrdd = inputRDD.fliter(lambda x: "sunday" in x)
我们使用filter()过滤了rdd中有“sunday”的行。
filter() 或返回一个全新的RDD,不会改变inputRDD。
通过转化操作,从已经存在的RDD中派生出新的RDD,Spark会使用谱系图记录各个RDD之前的依赖关系。

《Spark入门(Python)--1.2 RDD操作》 谱系图

行动操作:

行动操作会把计算结果返回到驱动器程序或者写入外部存储系统中。因为行动操作会用需要生产实际的输出,它们会强制执行那些求值必须用到的RDD的转化操作。继续使用上面的例子。

示例:collect()遍历

print(sundayrdd.collect())
我们在驱动器程序中使用collect()在本地遍历了sundayrdd。需要注意的是collect()会把RDD拉取到本地,只有本地机器的内存能够放的下时才能使用collect(),不能在大规模数据集上使用。如果需要在大规模数据集上使用可以用foreach().

点赞