首页 > 解决方案 > 从 Spark 写入多个 Kafka 分区

问题描述

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

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。我怎样才能将它统一写入同一主题中的所有分区?

标签: apache-sparkapache-kafka

解决方案


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


推荐阅读