有关生产环境下替代 pandas 新一代的一些数据分析框架,有用过的朋友吗

2022-04-03 14:52:49 +08:00
 LeeReamond

首页看见几个数据分析的帖子了,看到了一些新的以前没了解过的框架,像 polars 和 spark 这些,想问下有没有用过的朋友

需求:

目前有需求需要实时计算,非时间敏感型,单次运算参与行数 10-100 万行。

考虑生产环境下总有一些逻辑稍复杂的运算不能直接通过分析框架内置函数实现,需要兼顾考虑自定义开发的灵活度,不知道新框架有没有替代老框架的潜力。

比如典型需求,数据库中取出以下数据:

行  时间戳                 敏感度 A    流量 B
1   2022-01-01 12:12:12   12000      10
2   2022-01-01 12:12:13   22000      NAN
3   2022-01-01 12:12:14   22000      12
...

典型需求 1:源数据中不可避免包含空数据,需要补全,比如上述第 2 行最后一项是空的,需要向上补齐(填充上一行数据 10 )或者向左补齐(填充左项数据 22000 )

典型需求 2:开窗函数(?),计算以该行之前累计 7 天 /28 天流量和,不确定是否可以称为开窗,因为向上 7*24 小时内行数并不固定。

典型需求 3:从头累计,比如上述数据中流量 B 的从头累计(补全数据后)希望得到的是第一行累计 10 ,第二行累计 22 ,第三行累计 34 ,以此类推

当然包括加和平均数等等最基础功能都需要用这不提了。

目前的方案是数据库取出来后 numpy 处理,处理不了的用 pyo3 接入 rust 然后自己实现逻辑,因为 pyo3 可以直接对接 rust 内存,效率方面倒是尚可,但是其实很多逻辑用 numpy 感觉都不是很好做,总体感觉还是不很舒服。

看到论坛朋友发帖跑分方面似乎新框架远胜老的这些,不知道复杂逻辑的需求环境实际用起来如何,有必要学习吗?

3048 次点击
所在节点    Python
11 条回复
leimao
2022-04-03 15:08:41 +08:00
Rapids
David1119
2022-04-03 15:26:02 +08:00
pyflink 啊,流批一体方便的很,udf 灵活定制
WildCat
2022-04-03 15:29:16 +08:00
非实时计算用 Rust 的开发成本是不是太高了?
pengtdyd
2022-04-03 15:32:07 +08:00
没有 PB 级数据发挥不出 spark 的优势
srlp
2022-04-03 16:26:07 +08:00
非时间敏感,且只有百万行,为什么不先尝试 pandas ?测试过有什么瓶颈吗?

非实时计算没必要上 pyflink 。百万行也不算“大数据”没必要用 spark 。学习和搭建完生产环境都已经够用 numpy pandas 写完逻辑了
srlp
2022-04-03 16:26:52 +08:00
如果要实时计算的话,那么 flink 几乎是最佳选择了
janxin
2022-04-03 21:06:47 +08:00
单纯跑分没啥意义吧,pandas 这么好使没什么迁移的欲望啊
LeeReamond
2022-04-03 21:45:22 +08:00
@srlp 目前已有解决方案,发帖想询问一下新框架的提升空间
lizytalk
2022-04-03 23:40:35 +08:00
只用内存空间就能跑完的数据量,用 pandas 和 numpy 就挺好的。
LeeReamond
2022-04-04 05:30:17 +08:00
@lizytalk
@srlp
@janxin Pandas 确实很好用,但 pandas 无法覆盖 100%场景,即使 pandas 能覆盖 80%,其余的 20%原生代码成为性能瓶颈解决起来很头痛。而我看新框架有原生自定义 dll 插件的功能,感觉很有吸引力,但由于搜到的相关信息很少
dongxiao
2022-04-12 16:25:43 +08:00
试试 ‘dask‘
https://dask.org/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX