RDD的分区操作算子-mapPartitions算子
mapPartitions算子与map算子类似,调用一个指定的函数对RDD中的元素进行处理,生成一个新的RDD。与map算子不同的是,map算子的函数每次处理一个元素,RDD中有多少个元素,函数就会被调用多少次,而mapPartitions算子每次处理RDD的一个分区,RDD有多少个分区,函数就会被调用多少次。mapPartitions算子的定义如下:
def mapPartitions(
self: "RDD[T]",
f: Callable[[Iterable[T]], Iterable[U]],
preservesPartitioning: bool = False
) -> "RDD[U]"
案例:
rdd1 = sc.parallelize(["Hello Python", "Hello Spark You", "Hello Python Spark", "You know PySpark"])
print("map处理的类型:", rdd1.map(lambda x: type(x)).collect())
print("mapPartitions处理的类型:", rdd1.mapPartitions(lambda x: [type(x)]).collect())
print("map转换的结果:", rdd1.map(lambda x: (x, len(x))).collect())
print("mapPartitions转换的结果:", rdd1.mapPartitions(lambda x: [(x1, len(x1)) for x1 in list(x)]).collect())
...全文
相关推荐
spark算子.docx
Spark常用算子总结,map、mapPartitions、mapPartitionsWithIndex,flatMap,filter ......
25个经典Spark算子的JAVA实现
1、25个经典Spark算子的JAVA实现。2、含有详细的注释。3、全部通过junit测试。
Spark Transformation和Action算子速查表.pdf
spark transformation & action 算子速查表,大数据实时和离线数据处理方向,希望对大家学习和工作有所帮助。
spark面试资料
spark面试资料整理,spark面试基础问题及答案
Spark常用的算子以及Scala函数总结.pdf
Spark RDD 算子说明,分别讲述了Transformation和Action这两类的算子。


