我有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。如何才能将其统一写入同一主题的所有分区?
答案 0 :(得分:3)
Kafka根据其密钥分发消息。因此,具有相同密钥的消息将被放置在同一分区中。您的所有消息都可能具有相同的密钥。