Spark 2.3.1结构化流输入速率

时间:2018-09-02 17:26:42

标签: scala spark-streaming

我想知道是否有一种方法可以指定Spark结构化流中迷你批处理的大小。那不只是说明迷你批处理间隔(触发器),我想说明每个间隔在一个迷你批处理(DataFrame)中可以有多少行。 有办法吗?

除了一般的功能,我特别需要在具有MemoryStream的测试场景中应用它。我希望Spark从MemoryStream中消耗一定数量的数据,而不是一次获取所有数据,以实际查看整个应用程序的行为。我的理解是MemoryStream数据结构需要在启动作业之前被填充。因此,我如何看到小批量处理行为,spark是否能够在我给定的间隔内摄取MemoryStream的全部内容?

EDIT1

在Kafka集成中,我发现了以下内容:

  

maxOffsetsPerTrigger :每个触发间隔处理的最大偏移数的速率限制。指定的偏移总数将按比例分配给不同卷的topicPartitions。

但这仅用于KAFKA集成。我也看过

  

maxFilesPerTrigger :每个触发器要考虑的新文件的最大数量

所以似乎事物是按源类型定义的。因此,是否有一种方法可以控制如何从MEMORYSTREAM [ROW]中消耗数据?

1 个答案:

答案 0 :(得分:0)

寻找以下可以解决您问题的人

 1.spark.streaming.backpressure.initialRate 
 2.spark.streaming.backpressure.enabled