将 dask 组导出到 csv

Export dask groups to csv

我有一个大文件。它有 40,955,924 行,大于 13GB。我需要能够根据单个字段将这个文件分成单独的文件,如果我使用 pd.DataFrame 我会使用这个:

for k, v in df.groupby(['id']):
    v.to_csv(k, sep='\t', header=True, index=False)

但是,我收到错误 KeyError: 'Column not found: 0' 上有针对此特定错误的解决方案,但这需要使用 pandas 来存储数据帧的副本,我无法做到。非常感谢任何有关拆分此文件的帮助。

您想为此使用 apply()

def do_to_csv(df):
    df.to_csv(df.name, sep='\t', header=True, index=False)
    return df

df.groupby(['id']).apply(do_to_csv, meta=df._meta).size.compute()

备注 - 组密钥存储在数据框中 name - 我们 return 支持数据帧并提供 meta;这并不是真正必要的,但您需要计算 某物 并且很容易确切地知道那东西是什么 - 最终输出将是写入的行数。