producer.send()接受2个参数,一个是kafka主题,第二个是生成的输出。我们如何使用以下脚本制作kafkaproducer.py。***
请帮助我将两个python合并到一个文件中,以便我们可以使用此脚本将数据推送到kafka主题中。
import time
from kafka import KafkaProducer
kafka_bootstrap_servers = 'localhost:9092'
kafka_topic_name = 'test1topic'
producer = KafkaProducer(bootstrap_servers=kafka_bootstrap_servers,value_serializer=lambda v: json.dumps(v).encode('utf-8'))
producer.send(kafka_topic_name, script_output)
答案 0 :(得分:0)
基本上,您不能将代码添加到KafkaProducer
中,但是可以将其包装为新的生产者,并使其获得代码,或者仅将一个kafka生产者添加到Generator
对象中使start
函数通过kafka发送数据
答案 1 :(得分:0)
您只需从生成器函数的输出中传递它
例如,不要使用一个文件,而是使用适当的Python最佳做法来导入自己的模块
from somescript import generate_data
for data in generate_data():
producer.send(kafka_topic_name, data)
它应该产生数据,而不是让生成器仅打印数据,从而返回一个Python生成器对象
否则,您将producer.send
替换Generator类中的生成语句,就像已经显示