我有一个Spark程序,其中每个执行程序节点处理我的数据集的某些部分,并为每个部分提供结果。结果是一个对象。我需要将执行程序的结果发送到驱动程序节点以供进一步分析。
partitions.foreachPartition(iter => { var result = doSomethingWithIter(iter);});
如何将result
中的foreachPartition
发送到驱动程序节点?
答案 0 :(得分:4)
根据定义你不能。您想要pass
到foreachPartition
的功能是:
Iterator[_] => Unit
没有结果要发回。如果您想获得结果,mapPartitions
和collect
输出。
partitions.mapPartition(iter => Iterator(doSomethingWithIter(iter))).collect()