apache-spark - 写入 Kafka 压缩主题的 Spark 代码
问题描述
有谁知道是否可以调用writeStream
Kafka 主题,其中创建的主题是压缩主题?下面的代码创建了一个 Kafka 主题,但传递的选项被忽略。
StreamingQuery query = ds
.writeStream()
.format("kafka")
.option("kafka.bootstrap.servers", "localhost:9092"))
.option("topic", "myTopic")
.option("cleanup.policy", "compact")
.option("min.insync.replicas", 1)
.option("segment.bytes", 4096)
.option("delete.retention.ms", 100)
.option("min.compaction.lag.ms", 0)
.option("min.cleanable.dirty.ratio", 0.01)
.start();
解决方案
Spark Structure Streaming,当writeStream
在后台使用 kafka 格式调用时使用 KafkaProducer。
如果在代理端auto.create.topics.enable
有true
一个值(默认值),则当 KafkaProducer 获取元数据时,代理会创建新主题。
KafkaProducer 不传递任何主题的属性。Broker 使用一次默认值(例如default.replication.factor
, num.partitions
, log.cleanup.policy
)来创建主题。
您不能通过 KafkaProducer 传递主题创建属性。
推荐阅读
- typescript - 在 TypeScript 中限制数组的值
- c# - 每次尝试/捕获的 Xamarin.iOS Crashlytics 崩溃报告
- powershell - Powershell '获取存储的凭据'
- javascript - 用 Js 播放完一个又一个的音频
- java - 如何在 IntellIJ 控制台 (2019.3) 中使用 ANSI 颜色输出?
- c++ - 可以根据其值在编译时/运行时对 std::tuple 进行排序吗
- python - 如何在 pip 中修改 gcc 命令
- r - 按不同的降序排列数字
- heroku - 数据库“postgres”权限被拒绝详细信息:用户没有 CONNECT 权限
- pdf - 为什么某些 PDF 文件只能在某些应用程序中使用?