1
wh0syourda66y 2016-10-12 11:14:20 +08:00
docker pull 个 spark 镜像下来,用 pyspark 来计算。速度杠杠滴
|
2
menc 2016-10-12 11:16:28 +08:00
用原生 dict 来做
|
3
taxidriver 2016-10-12 11:23:48 +08:00
又是一个用 Python 做量化的,看到 2900+就知道了
建议合并后保存成 HDF5 文件,下次需要直接加载到内存,能省很多功夫 |
4
imn1 2016-10-12 11:30:22 +08:00
1.先用 profile 查一下哪一步慢, list 转 df 还是合并 df
2.concat 或者 append 要避免空 df ,就是直接 concat 到一个有数据的 df ,如果合并到一个空 df 会引起严重性能问题 3.多步骤处理大量数据,要及时 del 无用数据 |
5
kingmo888 OP |
6
kingmo888 OP @wh0syourda66y pyspark ??
|
10
qleroooo 2016-10-12 11:57:58 +08:00
为什么要存到 list
|
12
zjuhwc 2016-10-12 13:14:06 +08:00
感觉是解析到 list 和 list 转 df 这些步骤话的时间长吧,刚试了下生成 3000 个 100*2 的 df 用 concat 合并, 230ms 就够了。
In [1]: import pandas as pd In [2]: import numpy as np In [3]: l = [pd.DataFrame(np.random.randn(100, 2)) for _ in xrange(3000)] In [4]: timeit pd.concat(l, axis=1) 1 loop, best of 3: 230 ms per loop |
15
taxidriver 2016-10-12 15:41:11 +08:00
@kingmo888 keys 的索引也是 O(1)
|
16
laibluejay 2016-10-13 16:14:05 +08:00
大 df 和多个 df 的合并和输出,不如直接用读写文件的方式,快得很......
df merge 确实效率不高 |