[英]Spark code to write to a Kafka compacted topic
有谁知道是否可以将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,当在引擎盖下使用kafka格式调用writeStream
时使用KafkaProducer。
如果在代理端auto.create.topics.enable
的值为true
(默认值),则当 KafkaProducer 获取元数据时,代理会创建新主题。
KafkaProducer 不传递任何主题的属性。 Broker 使用默认一次(例如default.replication.factor
、 num.partitions
、 log.cleanup.policy
)来创建主题。
您不能通过 KafkaProducer 传递主题创建属性。
同样如文档中所述,将kafka
前缀与生产者或消费者属性一起使用。
Kafka 自己的配置可以通过 DataStreamReader.option 与 kafka 一起设置。 字首。
例子:
stream.option("kafka.bootstrap.servers","host:port")
此外,您只能在.options
传递生产者或消费者级别的属性。 如果您需要设置任何主题级别的配置,则需要使用代理配置,并且无法通过从默认配置中获取的 Spark 流代码进行设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.