spark结构化流:处理负载是否影响输入速率/numinputrecords?

yzckvree  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(387)

我当前的结构化流应用程序写入一个巨大的增量表。当我(停止流)并将其指向一个全新的增量表时:
它变得更快-批处理持续时间下降近1/4
投入率提高近3倍
我知道它可能会变得更快,因为它在旧的/更大的表上进行的任何聚合/写入在新表上都不需要。但是输入速率的变化是我希望有人能解释的?
源是azure eventhubs。
谢谢!

0vvn1miw

0vvn1miw1#

回答我自己的问题:
输入和处理速率背后的逻辑似乎如下:

Input rate =  numInputRows (or batch size )/ Trigger Interval in secs
Processing Rate = numInputRows (or batch size )/ Batch Duration in secs

如果没有触发间隔,它们应该是相同的,因为batchduration=触发间隔。
因此,对于具有大量分区的较大表,写入和聚合所需时间较长,这会增加批处理持续时间,从而降低输入(和处理速率)。因此,对于具有更快输入/处理速率的较小目标表,这应该可以解释相反的情况。

相关问题