将Dask分区写入单个文件

将Dask分区写入单个文件,第1张

将Dask分区写入单个文件 简短答案

不,Dask.dataframe.to_csv仅将CSV文件写入不同的文件,每个分区一个文件。但是,有一些解决方法。

之后串联

也许只是在dask.dataframe将文件写入后将它们连接起来?就性能而言,这可能接近最佳。

df.to_csv('/path/to/myfiles.*.csv')from glob import globfilenames = glob('/path/to/myfiles.*.csv')with open('outfile.csv', 'w') as out:    for fn in filenames:        with open(fn) as f: out.write(f.read())  # maybe add endline here as well?
或使用Dask.delayed

但是,您可以使用dask.delayed自己执行此 *** 作,方法是将dask.delayed与数据帧一起使用

这为您提供了可以使用的延迟值列表,但您可以根据需要:

list_of_delayed_values = df.to_delayed()

然后由您来构建计算结构,以将这些分区顺序写入单个文件。这并非难事,但会在调度程序上造成一些备份。

编辑1:(2019年10月23日)

在Dask
2.6.x中,参数为

single_file
。默认情况下为
False
。您可以将其设置
True
为获取单个文件输出,而无需使用
df.compute()

例如:

df.to_csv('/path/to/myfiles.csv', single_file = True)

参考:to_csv的文档



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存