如何在pyspark结构化流中使用maxOffsetsPerTrigger?

时间:2018-06-26 00:17:51

标签: pyspark apache-kafka

我想限制从kafka提取数据时的速率。我的代码如下:

df = spark.read.format('kafka') \
        .option("kafka.bootstrap.servers",'...')\
        .option("subscribe",'A') \
        .option("startingOffsets",'''{"A":{"0":200,"1":200,"2":200}}''') \
        .option("endingOffsets",'''{"A":{"0":400,"1":400,"2":400}}''') \
        .option("maxOffsetsPerTrigger",20) \
        .load() \
        .cache()

但是,当我打电话给df.count()时,结果是600。我期望的是20。有谁知道为什么“ maxOffsetsPerTrigger”不起作用。

1 个答案:

答案 0 :(得分:0)

每个分区(0、1、2)带来200条记录,总计600条记录。

如您所见:

  

使用maxOffsetsPerTrigger选项将记录数限制为   每次触发获取。

这意味着对于每个触发或获取过程,Kafka将获得20条记录,但总计仍将获取配置中设置的总记录(每个分区200条)。