从Spark写入多个Kafka分区

时间:2019-05-24 15:31:51

标签: apache-spark apache-kafka

我有Spark代码,可按此处指定的方式将批处理写入Kafka:

https://spark.apache.org/docs/2.4.0/structured-streaming-kafka-integration.html

代码如下:

  df.selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)") 
   \
   .write \
   .format("kafka") \
   .option("kafka.bootstrap.servers", 
           "host1:port1,host2:port2") \
   .option("topic", "topic1") \
   .save()

但是数据仅被写入Kafka分区0。如何才能将其统一写入同一主题的所有分区?

1 个答案:

答案 0 :(得分:3)

Kafka根据其密钥分发消息。因此,具有相同密钥的消息将被放置在同一分区中。您的所有消息都可能具有相同的密钥。