如何将foreachPartition中的函数结果发送到驱动程序节点?

时间:2018-05-25 15:25:45

标签: scala apache-spark

我有一个Spark程序,其中每个执行程序节点处理我的数据集的某些部分,并为每个部分提供结果。结果是一个对象。我需要将执行程序的结果发送到驱动程序节点以供进一步分析。

partitions.foreachPartition(iter => { var result = doSomethingWithIter(iter);});

如何将result中的foreachPartition发送到驱动程序节点?

1 个答案:

答案 0 :(得分:4)

根据定义你不能。您想要passforeachPartition的功能是:

Iterator[_] => Unit

没有结果要发回。如果您想获得结果,mapPartitionscollect输出。

partitions.mapPartition(iter => Iterator(doSomethingWithIter(iter))).collect()