Apache spark spark-在工作人员完成分区处理后,有没有办法执行钩子?

Apache spark spark-在工作人员完成分区处理后,有没有办法执行钩子?,apache-spark,Apache Spark,我不是spark方面的专家,所以如果我不在行,我向你道歉 我们使用ApacheSpark同时处理一个大文件的不同部分。我们不需要任何结果的汇总。我们面临的问题是,工作人员将逐个处理记录,而我们希望分组处理这些记录。我们可以分组收集它们,但最后一组将不会被处理,因为我们没有从spark获得它正在处理最后一条记录的信息。有没有办法让spark在分区处理完成后调用某个东西,这样我们就可以完成最后一个组的处理 或者是一种完全不同的方法 如果您决定提供一些代码示例,我们将使用java 谢谢spark侦听器

我不是spark方面的专家,所以如果我不在行,我向你道歉

我们使用ApacheSpark同时处理一个大文件的不同部分。我们不需要任何结果的汇总。我们面临的问题是,工作人员将逐个处理记录,而我们希望分组处理这些记录。我们可以分组收集它们,但最后一组将不会被处理,因为我们没有从spark获得它正在处理最后一条记录的信息。有没有办法让spark在分区处理完成后调用某个东西,这样我们就可以完成最后一个组的处理

或者是一种完全不同的方法

如果您决定提供一些代码示例,我们将使用java


谢谢

spark侦听器如何?您可以在dataset/dataframe上使用
foreachPartition
(但此代码将在执行器上执行),这在处理记录方面非常有效。非常感谢。现在还有一个问题。我希望我的rdd能在工人之间被分割,所有工人都能得到它的一部分,并行处理它们。相反,每个工作者都会获得整个数据集,并按顺序工作。一个完成了,另一个开始了。他们都做了大量的工作。代码如下:
input.foreachPartition(newpartitioniterator())
公共void调用(迭代器it){while(it.hasNext()){processLine(it.next();}}}