如何在Faust Kafka流媒体中使用分组方式并一起使用窗口?

时间:2019-04-08 08:00:16

标签: python-3.x faust

我需要构建一个robinhood的faust应用程序,该应用程序应能够处理分组并随后执行窗口操作。

现在我正在使用下面的窗口作为窗口,

class Sample(faust.Record):
    master_mac: str 
    uuid: str
    slave_mac: str
    rawData: str
    rssi: int

app = faust.App('sample_app', broker='kafka://localhost:9092')
my_topic = app.topic('out', key_type=str, value_type=Sample)

@app.agent(my_topic)
async def process(samples):
    async for sample in samples.take(5000, within=5):
        print("sample :: ", sample)

if __name__ == '__main__':
    worker = Worker(app, loglevel="INFO")
    worker.execute_from_commandline()

在这里,除了窗口化之外,我还需要进行分组概念

class Sample(faust.Record):
    master_mac: str 
    uuid: str
    slave_mac: str
    rawData: str
    rssi: int

app = faust.App('sample_app', broker='kafka://localhost:9092')
my_topic = app.topic('out', key_type=str, value_type=Sample)

@app.agent(my_topic)
async def process(samples):
    async for sample in samples.group_by(Sample.master_mac and Sample.slave_mac):
        print("sample :: ", sample)

if __name__ == '__main__':
    worker = Worker(app, loglevel="INFO")
    worker.execute_from_commandline()

任何人都可以帮我这个问题,同时实现窗口化和分组吗?

0 个答案:

没有答案