是时候安利我们的开源库:Mars。Mars DataFrame 可以用来加速 pandas 执行,即使在单机。而代码几乎无需改动。
以下代码都是在我的笔记本上跑的。
任务一:只读取 CSV 文件
pandas:
In [1]: import pandas as pd
In [2]: %time df = pd.read_csv('ratings.csv')
CPU times: user 4.75 s, sys: 1.13 s, total: 5.88 s
Wall time: 4.71 s
Mars DataFrame:
In [1]: import mars.dataframe as md
In [2]: %time df = md.read_csv('ratings.csv').execute()
CPU times: user 9.55 s, sys: 4.9 s, total: 14.4 s
Wall time: 1.52 s
时间从 4.71s 下降到 1.52s(3.1x)。
任务二:读取 CSV + 分组聚合
pandas:
In [1]: import pandas as pd
In [2]: %%time
...: df = pd.read_csv('ratings.csv')
...: df.groupby('movieId').agg({'rating': ['max', 'min', 'std']})
...:
...:
CPU