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

Scala 如何将foreachPartition中函数的结果发送到驱动程序节点?,scala,apache-spark,Scala,Apache Spark,我有一个Spark程序,其中每个executor节点处理数据集的某些部分,并为每个部分提供结果。结果是一个对象。我需要将执行者的结果发送到驱动程序节点进行进一步分析 partitions.foreachPartition(iter => { var result = doSomethingWithIter(iter);}); 如何将foreachPartition中的results发送到驱动程序节点?根据定义,您不能。要将pass传递到foreachPartition的函数是: Iter

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

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

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

根据定义,您不能。要将
pass
传递到
foreachPartition
的函数是:

Iterator[_] => Unit
没有要发回的结果。如果要获得结果,
mapPartitions
收集输出

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

根据定义,你不能。要将
pass
传递到
foreachPartition
的函数是:

Iterator[_] => Unit
没有要发回的结果。如果要获得结果,
mapPartitions
收集输出

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