繁体   English   中英

使用dask合并数据集证明不成功

Merging datasets using dask proves unsuccessful

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用Python中的Dask合并许多大型数据集,以避免加载问题。 我想将合并文件另存为.csv 这个任务比想象的要难:

我将一个仅包含两个数据集的玩具示例放在一起,然后使用以下代码:

import dask.dataframe as dd
import glob
import os

os.chdir('C:/Users/Me/Working directory')
file_list = glob.glob("*.txt")    

dfs = []
for file in file_list:
    ddf = dd.read_table(file, sep=';')
    dfs.append(ddf)

dd_all = dd.concat(dfs)

如果我使用dd_all.to_csv('*.csv') ,则只打印两个原始数据集。 如果我使用dd_all.to_csv('name.csv')收到错误消息,指出该文件不存在。 FileNotFoundError: [Errno 2] No such file or directory: 'C:\\\\Users\\\\Me\\\\Working directory\\\\name.csv\\\\1.part'

我可以使用dd_all.compute()检查合并的数据集是否已成功创建。

1 个回复

您误解了Dask的工作原理-您所看到的行为符合预期。 为了能够从多个工作线程并行写入,每个工作线程必须能够写入一个单独的文件。 例如,在写入之前,无法知道第一个块的长度。 因此,写入单个文件必须是顺序操作。

因此,默认操作是为每个输入分区写入一个输出文件,这就是您所看到的。 由于Dask可以并行读取这些内容,因此确实提出了一个问题,即为什么要创建一个输出文件。

对于第二种不带“ *”字符的方法,Dask假设您提供的是目录,而不是文件,并试图在此目录中写入两个不存在的文件。

如果您确实想编写一个文件,则可以执行以下操作之一:

  • 使用repartition方法制作单个输出,然后使用to_csv
  • 编写单独的文件,然后将其连接起来(注意标题行)
  • 依次遍历数据帧的分区以写入同一文件。
1 使用 dask 合并大型数据集

我有两个数据集,一个大约 45GB,它包含 1 年的每日交易,第二个是 3.6GB,包含客户 ID 和详细信息。 我想将两者合并到一个公共列上以创建一个单一的数据集,这超出了服务器的内存,因为每个客户可能有多个交易。 我正在使用具有 16 个内核和 64GB RAM 的 Windows 服务器工作, ...

2 使用 dask 加载大型数据集

我处于具有集群、紧密耦合互连和支持 Lustre 文件系统的 HPC 环境中。 我们一直在探索如何利用 Dask 不仅提供计算,而且还充当分布式缓存来加速我们的工作流程。 我们专有的数据格式是 n 维和规则的,我们编写了一个惰性读取器来传递到 from_array/from_delayed 方法。 ...

2018-06-11 16:25:21 1 647   hdf5/ dask
3 验证和证明数据集

在我的论文中,我将数据集复制到两个相似的数据集,改进一个数据集,而保持另一个不变。 现在这两个数据集是我的输入数据,模块的其他阶段都是相同的。 我的目标之一是看到改进数据集和不改进数据集之间的区别。 但是现在其中一位裁判说“验证并证明输入的合理性”。 我不明白为什么? 它们完全一样。 ...

4 使用 dask 加载大型压缩数据集

我正在尝试使用以下结构将大型压缩数据集加载到 python 中: 年.zip 年 月 很多 .csv 文件 到目前为止,我已经使用 ZipFile 库遍历每个 CSV 文件并使用 Pandas 加载它 ...

5 使用dask沿轴对数据集进行排序

我想沿着每年的时间维度对数据集(netcdf 文件)进行排序,然后对它们进行平均。 问题是 dask 只支持“topk”排序,如果包含整个值范围,它会消耗所有内存。 Xarray 只支持一维数组的排序。 Numpy sort 可以完成这项工作,但它也会消耗内存。 有什么方法可以使用 dask 在 ...

6 使用Pandas合并大型数据集

我正在尝试合并两个大型DataFrame: myTable ,形状:( myTable )。 第一个包含几个客户代码(1列)的交易数据(12列) Referential ,形状(75546,1)。 第二个表包含一个引用表,在第1列中包含客户端代码作为索引和客户端名称。 ...

7 合并排序均不成功

这个SQL出于某种目的,但是即使我给出了一个排序子句(按tdate排序)仍然不是明智的排序日期。 如何重写以获取排序的“ tdate”列: ...

9 使用Dask在python上对大型数据集进行计算时计算机崩溃

我无法使用python-Dask对大型数据集进行计算。 我的电脑崩溃了。 我有一台具有4GB RAM并运行Linux Debian的计算机。 我正在尝试从Kaggle竞赛(ElO Merchant竞赛)中加载一些文件,当我尝试加载并获取模糊数据框的形状时,计算机崩溃。 我仅在笔记 ...

10 使用 dplyr 合并数据集和合并列 R

我有两个要合并的数据集。 它们不是完整的数据集,因此这意味着个人缺少记录。 这是data1 (示例是我的真实数据的一个子集): 这是data2 (示例是我的真实数据的一个子集): 我正在尝试做两件事: 让我保留来港时,记录不完整(即合并这两个数据集data1具有创纪录的1 age== ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM