我需要构建一个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()
任何人都可以帮我这个问题,同时实现窗口化和分组吗?