【问题标题】:Trying to group out data and write them out to files尝试将数据分组并将它们写入文件
【发布时间】:2026-02-02 17:20:10
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: dask dask-distributed


    【解决方案1】:

    如果您要保存到镶木地板,那么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

    【讨论】:

    • 谢谢!我能够使用 partition_on。它最初给了我一些错误,但似乎在正确设置 pyarrow 元数据后,现在一切正常。