我无法将Streamz流转换为使用Kafka源代码生成的Dask流。PFB代码
from streamz import Stream
from streamz.dataframe import Random
from streamz.dataframe import DataFrame
import json
from dask.distributed import Client
client = Client()
source = Stream.from_kafka(['logs'],
{'bootstrap.servers': 'kafkaXX:9092',
'group.id': 'streamz'})
source.scatter().map(json.loads).buffer(8).gather().sink(print)
source.start()
我收到此错误消息
ValueError: Two different event loops active
答案 0 :(得分:0)
如果没有另外指示,kafka源将在线程中启动其自己的事件循环。对Client()
的调用也可以做到这一点。要将循环从一个传递到另一个,您可以
Stream.from_kafka(..., loop=client.loop)
请注意,对.scatter()
的调用也需要对事件循环的显式访问,但是由于它是特定于dask的,因此它知道使用活动的任何客户端的循环。