首页 > 解决方案 > Python中的结构化流处理

问题描述

我有以下(有限)数据流:

def get_logs() -> Generator[Dict,None,None]:
  for .. in some_db_logs:
    yield {
        "utterance": ...
        "user_hash": ...
    }

我想按话语对它们进行分组,并为每个组计算两个聚合函数。在熊猫中,这将是:

pd.DataFrame(get_logs())
    .groupby("utterance")
    .agg(
        "user_hash": "count", 
        "user_hash": "nunique")

它计算每个话语的出现次数和说出它的用户数量。

因为我习惯了 pandas,所以语法对我来说非常清楚,但是 pandas 在计算之前会将所有数据读入内存。对于我拥有的数据大小,这不能很好地扩展。显然,我可以用纯 Python 来实现它,但语法不再那么直观了。

是否有任何现成的库可以让我使用类似的语法执行结构化流处理?

标签: pythonpandas

解决方案


推荐阅读