Kafka:Scala到Python的转换
提及: 这个例子有python版本吗?引用只有java等价物。我发现了一些相似之处 我可以将bootstrap.servers与bootstrap\u servers、key.serializer与key\u serializer、value.serializer与value\u serializer匹配,但无法匹配最后3个“group.id”、“auto.offset.reset”和 “enable.auto.commit”Kafka:Scala到Python的转换,python,apache-spark,pyspark,apache-kafka,spark-streaming,Python,Apache Spark,Pyspark,Apache Kafka,Spark Streaming,提及: 这个例子有python版本吗?引用只有java等价物。我发现了一些相似之处 我可以将bootstrap.servers与bootstrap\u servers、key.serializer与key\u serializer、value.serializer与value\u serializer匹配,但无法匹配最后3个“group.id”、“auto.offset.reset”和 “enable.auto.commit” 您正在查看的Scala代码是针对消费者的。因此,您需要检查消费者的设
您正在查看的Scala代码是针对消费者的。因此,您需要检查消费者的设置,而不是制作人的设置 如果你看一下,你可以找到它们的等价物:
:group.id
group\u id
:auto.offset.reset
auto\u offset\u reset
:启用自动提交
启用自动提交
:key.deserializer
key\u deserializer
:value.deserializer
value\u deserializer
从pyspark.streaming.kafka导入KafkaUtils
#ssc=
directKafkaStream=KafkaUtils.createDirectStream(ssc,[topic],{“metadata.broker.list”:brokers})
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))
from pyspark.streaming.kafka import KafkaUtils
# ssc = <get a StreamingContext>
directKafkaStream = KafkaUtils.createDirectStream(ssc, [topic], {"metadata.broker.list": brokers})