我想知道是否有一种方法可以指定Spark结构化流中迷你批处理的大小。那不只是说明迷你批处理间隔(触发器),我想说明每个间隔在一个迷你批处理(DataFrame)中可以有多少行。 有办法吗?
除了一般的功能,我特别需要在具有MemoryStream的测试场景中应用它。我希望Spark从MemoryStream中消耗一定数量的数据,而不是一次获取所有数据,以实际查看整个应用程序的行为。我的理解是MemoryStream数据结构需要在启动作业之前被填充。因此,我如何看到小批量处理行为,spark是否能够在我给定的间隔内摄取MemoryStream的全部内容?
EDIT1
在Kafka集成中,我发现了以下内容:
maxOffsetsPerTrigger :每个触发间隔处理的最大偏移数的速率限制。指定的偏移总数将按比例分配给不同卷的topicPartitions。
但这仅用于KAFKA集成。我也看过
maxFilesPerTrigger :每个触发器要考虑的新文件的最大数量
所以似乎事物是按源类型定义的。因此,是否有一种方法可以控制如何从MEMORYSTREAM [ROW]中消耗数据?
答案 0 :(得分:0)
寻找以下可以解决您问题的人
1.spark.streaming.backpressure.initialRate
2.spark.streaming.backpressure.enabled