2

我试图使用 Dask 读取一个非常大的 csv 文件的文件夹(它们都适合内存,它们非常大,但我有很多 RAM) - 我当前的解决方案看起来像:

val = 'abc'

df = dd.read_csv('/home/ubuntu/files-*', parse_dates=['date'])
# 1 - df_pd = df.compute(get=dask.multiprocessing.get)
ddf_selected = df.map_partitions(lambda x: x[x['val_col'] == val])
# 2 - ddf_selected.compute(get=dask.multiprocessing.get)

1(然后使用熊猫)还是 2 更好?只是想知道该怎么做?

4

1 回答 1

0

您也可以执行以下操作:

ddf_selected = ddf[ddf['val_col'] == val]

至于哪个更好,很大程度上取决于操作。对于不需要内存洗牌的大型数据集,dask.dataframe 可能会表现得更好。对于随机访问或完整排序,pandas 可能会表现得更好。

您可能不想使用多处理调度程序。通常对于 Pandas,我们推荐线程或分布式调度程序。

于 2017-11-01T14:14:40.760 回答