2

TL;DR:我如何将分布式读取中的元数据(解析期间的错误)收集到 dask 数据帧集合中。

我目前有一个专有文件格式,用于输入 dask.DataFrame。我有一个接受文件路径并返回 pandas.DataFrame 的函数,dask.DataFrame 在内部使用它成功地将多个文件加载到同一个 dask.DataFrame。

直到最近,我还在使用自己的代码将几个 pandas.DataFrames 合并为一个,现在我正在改用 dask。解析文件格式时,我可能会遇到错误和某些条件,我想记录并与 dask.DataFrame 对象关联为元数据(日志、数据来源等)。

重要的是要注意,在合理的情况下,我大量使用 MultiImdices(13 个索引级别,3 个列级别)。对于描述整个数据框而不是特定行的元数据,我使用的是属性。

使用自定义函数,我可以将元数据与实际 DataFrame 一起传递到元组中。使用 pandas,我可以将其添加到 _metadata 字段并作为 DataFrame 对象的属性。使用 dask 框架时,如何从单独的 pandas.DataFrame 对象收集元数据?

谢谢!

4

1 回答 1

2

这里有几个潜在的问题:

  • 如何将自定义格式的多个文件中的数据加载到单个 dask 数据框中
  • :您可以查看dask.delayed加载数据dask.dataframe.from_delayed并将几个 daskDelayed对象转换为单个 dask 数据帧。或者,就像您现在可能正在做的那样,您可以使用dask.dataframe.from_pandasand dask.dataframe.concat。请参阅此示例笔记本,了解如何使用自定义对象/函数中的 dask.delayed。

  • 如何将任意元数据存储到 dask.dataframe?

  • :不支持。一般来说,如果可能,我建议使用不同的数据结构来存储元数据。如果有很多用例,那么我们应该考虑将它添加到 dask 数据帧中。如果是这种情况,请提出问题。一般认为,在 dask.dataframe 考虑支持它之前,最好在 Pandas 中看到对此的更好支持。

  • 我在 Pandas 中大量使用多索引,如何将这个工作流程集成到 dask.dataframe 中?

  • :不幸的是 dask.dataframe 目前不支持多索引。这些显然会有所帮助。
于 2016-01-31T20:19:08.187 回答