尝试分组数据并将它们写到文件中

Trying to group out data and write them out to files

我想知道是否有人知道在 Dask 中根据列的值写出一组文件的正确方法。换句话说,如果我想根据列中的值对一堆列进行分组并将它们写到 CSV 中。我一直在尝试将 groupby-apply 范例与 Dask 一起使用,但问题是它没有 return 一个 dask.dataframe 对象,所以我应用它的函数使用 Pandas API.

有没有更好的方法来处理我正在尝试做的事情?可扩展的解决方案将不胜感激,因为我正在处理的一些数据非常大。

谢谢!

如果您要保存到镶木地板,那么 partition_on kwarg 会很有用。如果您要保存到 csv,则可以使用(粗略的伪代码)做类似的事情:


def save_partition(df, partition_info=None):
    for group_label, group_df in df.groupby('some_col'):
        csv_name = f"{group_label}_partition_{partition_info['number']}.csv"
        group_df.to_csv(csv_name)

delayed_save = ddf.map_partitions(save_partition)

然后可以在方便的时候计算delayed_save