首页看见几个数据分析的帖子了,看到了一些新的以前没了解过的框架,像 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 感觉都不是很好做,总体感觉还是不很舒服。
看到论坛朋友发帖跑分方面似乎新框架远胜老的这些,不知道复杂逻辑的需求环境实际用起来如何,有必要学习吗?
1
leimao 2022-04-03 15:08:41 +08:00
Rapids
|
2
David1119 2022-04-03 15:26:02 +08:00
pyflink 啊,流批一体方便的很,udf 灵活定制
|
3
WildCat 2022-04-03 15:29:16 +08:00
非实时计算用 Rust 的开发成本是不是太高了?
|
4
pengtdyd 2022-04-03 15:32:07 +08:00
没有 PB 级数据发挥不出 spark 的优势
|
5
srlp 2022-04-03 16:26:07 +08:00 via iPhone
非时间敏感,且只有百万行,为什么不先尝试 pandas ?测试过有什么瓶颈吗?
非实时计算没必要上 pyflink 。百万行也不算“大数据”没必要用 spark 。学习和搭建完生产环境都已经够用 numpy pandas 写完逻辑了 |
6
srlp 2022-04-03 16:26:52 +08:00 via iPhone
如果要实时计算的话,那么 flink 几乎是最佳选择了
|
7
janxin 2022-04-03 21:06:47 +08:00
单纯跑分没啥意义吧,pandas 这么好使没什么迁移的欲望啊
|
8
LeeReamond OP @srlp 目前已有解决方案,发帖想询问一下新框架的提升空间
|
9
lizytalk 2022-04-03 23:40:35 +08:00 via iPhone
只用内存空间就能跑完的数据量,用 pandas 和 numpy 就挺好的。
|
10
LeeReamond OP |
11
dongxiao 2022-04-12 16:25:43 +08:00
试试 ‘dask‘
https://dask.org/ |