增加Spark结构化流作业的输出大小



上下文:我有一个Spark结构化流作业,Kafka作为源,S3作为sink。S3中的输出再次作为其他MapReduce作业的输入。因此,我希望增加S3上文件的输出大小,以便MapReduce作业能够有效地工作。目前,由于输入量小,MapReduce作业需要很长时间才能完成。

是否有一种方法可以配置流作业等待至少'X'条记录来处理?

可能您希望等待微批处理触发,直到源处有足够的数据可用。你可以使用minOffsetsPerTrigger选项等待kafka中有足够的可用数据。确保设置足够的maxTriggerDelay时间根据您的应用程序需要。

不,现实中没有。

  • 3.x之前的Spark没有

  • 是和否为Spark 3。x等于No

minOffsetsPerTrigger被引入,但有一个捕获,如下所示。这意味着总体答案仍然是否定的。

从手册:

每个触发间隔要处理的最小偏移数。的指定的偏移量总数将按比例分割topic不同卷的分区。注意,如果maxTriggerDelay是超过,即使可用的数量也会触发触发器offset没有达到minOffsetsPerTrigger.