(pyspark)
sc.parallelize([1,2,3,4,5,6])
创建出一个可以被并行操作的分布式数据集
mapPartitions(func)
func应用于RDD的每个分区上,所以func的输入是一个block
>>> def squareFunc(a):
. . . for i in a:
. . . yield i*i
. . .
>>> a = sc.parallelize(range(10), 3)
PythonRDD[1] at RDD at PythonRDD.scala:48
>>> a.mapPartitions(squareFunc).collect()
比如,将RDD中的所有数据通过JDBC连接写入数据库,如果使用map函数,可能要为每一个元素都创建一个connection,这样开销很大,如果使用mapPartitions,那么只需要针对每一个分区建立一个connection。