apache-spark - 从 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。我怎样才能将它统一写入同一主题中的所有分区?
解决方案
Kafka 根据它们的密钥分发消息。因此,具有相同 key 的消息将被放置到同一个分区中。您的所有消息都可能具有相同的密钥。
推荐阅读
- networking - 如果端口处于 LISTENING 状态,netstat/TCPView 中的 'Remote Address' 字段是什么意思
- reactjs - Reactjs useState 挂钩未更新承诺数据
- sql - 如何控制并发以不同进程同时访问行
- android - 此代码不在真实设备中向下滑动但在模拟器中工作(使用 Appium)
- laravel - 如何在 laravel api 中解码 [Object object]?
- api - 客户端服务的对应物(模式)是什么?
- android - Android Studio 3.6:Gradle“离线模式”不起作用
- node.js - 具有多个 Mongo DB 的节点架构
- algorithm - 如何找到从多个列表中选择大于或等于给定数字的数字的可能方法的数量?
- python - Python DataFrame:添加一列与其他列的值重复但以不同的方式