我想在我的应用程序spark&Kafka中添加一些参数,以将Dataframe写入主题kafka。
我在spark-kafka文档中找不到acks和compression.codec
.write
.format("kafka")
.option("kafka.sasl.mechanism", Config.KAFKA_SASL_MECHANISM)
.option("kafka.security.protocol", Config.KAFKA_SECURITY_PROTOCOL)
.option("kafka.sasl.jaas.config", KAFKA_JAAS_CONFIG)
.option("kafka.bootstrap.servers", KAFKA_BOOTSTRAP)
.option("fetchOffset.numRetries", 6)
.option("acks","all")
.option("compression.codec","lz4")
.option("kafka.request.timeout.ms", 120000)
.option("topic", topic)
.save()```
答案 0 :(得分:0)
您可以使用此特定属性定义序列化器: default.value.serde
答案 1 :(得分:0)
对于序列化程序,请创建一个case类或其他类型的一到三列Dataframe,它们仅包含Array[Byte]
和key
的{{1}}字段(字符串也可以使用)。然后value
字符串字段。如果只需要Kafka值,则只需要一列Dataframe
在写入Kafka之前,您需要映射当前数据以将其全部序列化。
然后,文档确实说任何其他生产者属性都以topic
开头
对于SASL属性,我认为您需要在提交过程中使用kafka.
并通过spark.executor.options
传递密钥标签或jaas文件,尽管