[英]Kafka: Scala to Python conversion
參考: https://spark.apache.org/docs/2.2.0/streaming-kafka-0-10-integration.html#consumerstrategies
這個例子有 python 版本嗎? 參考只有 java 等效。 我在https://kafka-python.readthedocs.io/en/master/apidoc/KafkaProducer.html發現了一些相似之處。
我可以將 bootstrap.servers 與 bootstrap_servers 匹配,將 key.serializer 與 key_serializer 匹配,將 value.serializer 與 value_serializer 匹配,但我無法匹配最后 3 個“group.id”、“auto.offset.reset”和“enable.auto”。犯罪”。
import org.apache.kafka.clients.consumer.ConsumerRecord
import org.apache.kafka.common.serialization.StringDeserializer
import org.apache.spark.streaming.kafka010._
import org.apache.spark.streaming.kafka010.LocationStrategies.PreferConsistent
import org.apache.spark.streaming.kafka010.ConsumerStrategies.Subscribe
val kafkaParams = Map[String, Object](
"bootstrap.servers" -> "localhost:9092,anotherhost:9092",
"key.deserializer" -> classOf[StringDeserializer],
"value.deserializer" -> classOf[StringDeserializer],
"group.id" -> "use_a_separate_group_id_for_each_stream",
"auto.offset.reset" -> "latest",
"enable.auto.commit" -> (false: java.lang.Boolean)
)
val topics = Array("topicA", "topicB")
val stream = KafkaUtils.createDirectStream[String, String](
streamingContext,
PreferConsistent,
Subscribe[String, String](topics, kafkaParams)
)
stream.map(record => (record.key, record.value))
您正在查看的 Scala 代碼適用於消費者。 所以你需要檢查消費者設置而不是生產者的設置。
如果您查看https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html ,您可以找到它們的等價物:
group.id
: group_id
auto.offset.reset
: auto_offset_reset
enable.auto.commit
: enable_auto_commit
另請注意,消費者具有反序列化器而不是序列化器,因此:
key.deserializer
: key_deserializer
value.deserializer
: value_deserializer
我在https://kafka-python.readthedocs.io發現了一些相似之處
不過,這不是 Spark 代碼。 Spark 需要 Java Kafka API 的屬性。
spark-streaming-kafka-0-10
在 Python 中不可用,但是如果你想使用 Spark,這是 0.8 API, 其中有 ZA7F5F35426B92742111FC9231B56 示例
from pyspark.streaming.kafka import KafkaUtils
# ssc = <get a StreamingContext>
directKafkaStream = KafkaUtils.createDirectStream(ssc, [topic], {"metadata.broker.list": brokers})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.