如何使用Python的Dask读取生成的0.part、1.part格式CSV文件?
读取Dask生成的.part格式CSV文件
Dask生成多个.part文件是因为它的并行处理特性——每个DataFrame分区对应一个输出文件。以下是几种实用的读取方式:
用Dask直接批量读取(推荐,适合大数据集)
直接用Dask的read_csv读取文件夹下所有.part文件,它会自动识别并合并所有分区,保留并行处理能力,完全适配大数据场景:import dask.dataframe as dd # 通配符匹配所有.part文件 df = dd.read_csv(r'D:\Projects\Android_HL_TC\Out\*.part')读取后可以像操作普通Dask DataFrame一样处理数据,不需要额外合并操作。
合并为单个CSV文件(适合数据量较小的场景)
如果需要把所有.part文件合并成一个标准CSV,可以先通过Dask读取后转成Pandas DataFrame再保存:import dask.dataframe as dd df = dd.read_csv(r'D:\Projects\Android_HL_TC\Out\*.part') # 转成Pandas DataFrame(注意:数据量过大时可能占满内存) pandas_df = df.compute() # 保存为单个CSV pandas_df.to_csv(r'D:\Projects\Android_HL_TC\Out\merged_result.csv', index=False)用命令行合并(快速处理小文件)
如果你用Windows系统,可以用copy命令合并:# 注意:如果每个.part文件都有表头,合并后会重复表头,需要手动移除多余表头 copy D:\Projects\Android_HL_TC\Out\*.part D:\Projects\Android_HL_TC\Out\merged.csvLinux/macOS系统则用
cat命令:cat /path/to/Out/*.part > /path/to/Out/merged.csv这种方法要注意表头重复问题——如果生成.part文件时每个文件都带表头(Dask默认会给每个分区文件加表头),合并后除了第一行,其他文件的表头都会变成数据行,需要提前处理(比如写文件时加
header=False,或者合并后删除重复表头行)。
内容的提问来源于stack exchange,提问作者Shashank
相关产品推荐
相关产品推荐

