当前位置:   article > 正文

python流式数据处理_Python - Toolz - 流式分析(Streaming Analytics)工具

python有没有流式语法

Python - Toolz - 流式分析(Streaming Analytics)工具

21 August 2014

Toolz 可以用于编写分析大型数据流脚本,它支持通用的分析模式,如通过纯函数来对数据进行筛选(Selection),分组(Grouping),化简(Reduction)以及连表(Joining)。这些函数通常可以模拟类似其他数据分析平台(如 SQL 和 Panda)的类似操作行为。

我将使用下面简单的数据集作为演示数据,贯穿全文

>>> # id, name, balance, gender

>>> accounts = [(1, 'Alice', 100, 'F'),

... (2, 'Bob', 200, 'M'),

... (3, 'Charlie', 150, 'M'),

... (4, 'Dennis', 50, 'M'),

... (5, 'Edith', 300, 'F')]

使用 Map 和 Filter 来筛选数据

通过标准函数 map 和 filter 能够完成对列表简单的映射和筛选

SELECT name, balance

FROM accounts

WHERE balance > 150;

下面的函数能够满足 SQL 的 SELECT 和 WHERE 需求

>>> from toolz.curried import pipe, map, filter, get

>>> pipe(accounts, filter(lambda (id, name, balance, gender): balance > 150),

... map(get([1, 2])),

... list)

它使用了 map 和 reduce 的加里化(curried)版本。

当然,这些操作也能很好的支持标准的列表(List)和生成器(Generator)的组合语法。这个语法会经常被使用,并通常被认为非常的 Pythonic

>>> [(name, balance) for (id, name, balance, gender) in accounts

... if balance > 150]

使用 groupby 和 reduceby 完成 Split-apply-combine

我们把 Split-apply-combine 拆分成下面两个概念:

根据一些特征将数据拆分到不同组中

使用聚合函数对每一个分组进行化简

Toolz 支持这种工作流:

简单的内存计算方案

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/927204
推荐阅读
相关标签
  

闽ICP备14008679号