0
Apache Sparkのドキュメントに続いて、mapPartitionモジュールを試してみました。次のコードでは、関数内で最初のRDDを見ることが期待されました。myfunc
値を出力した後にイテレータを返すだけです。しかし、RDDでcollect
を実行すると、それは空です。pysparkでmapPartitionsを使用する方法
from pyspark import SparkConf
from pyspark import SparkContext
def myfunc(it):
print(it.next())
return it
def fun1(sc):
n = 5
rdd = sc.parallelize([x for x in range(n+1)], n)
print(rdd.mapPartitions(myfunc).collect())
if __name__ == "__main__":
conf = SparkConf().setMaster("local[*]")
conf = conf.setAppName("TEST2")
sc = SparkContext(conf = conf)
fun1(sc)