新的dask,1GB当我在dask数据帧中读取它时,我有一个CSV文件,它在我写入文件的更改后创建了大约50个分区,它创建了与分区一样多的文件.
有没有办法将所有分区写入单个CSV文件,是否有办法访问分区?
谢谢.
MRo*_*lin 21
不,Dask.dataframe.to_csv只将CSV文件写入不同的文件,每个分区一个文件.但是,有办法解决这个问题.
也许只是在dask.dataframe写入后连接文件?这在性能方面可能接近最优.
df.to_csv('/path/to/myfiles.*.csv')
from glob import glob
filenames = 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?
Run Code Online (Sandbox Code Playgroud)
但是,您可以使用dask.delayed自己执行此操作,方法是将dask.delayed与数据帧一起使用
这会为您提供一个您可以使用的延迟值列表:
list_of_delayed_values = df.to_delayed()
Run Code Online (Sandbox Code Playgroud)
然后由您构建计算以将这些分区顺序写入单个文件.这并不难,但可以在调度程序上引起一些备份.
小智 5
您可以使用该compute函数将 dask 数据帧转换为 Pandas 数据帧,然后使用to_csv. 像这样:
df_dask.compute().to_csv('csv_path_file.csv')
| 归档时间: |
|
| 查看次数: |
5927 次 |
| 最近记录: |