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对象中收集元数据?
谢谢!
答案 0 :(得分:1)
这里有一些潜在的问题:
A :您可以查看Delayed
以加载数据,并dask.dataframe.from_pandas
将多个dask dask.dataframe.concat
对象转换为单个dask数据帧。或者,正如您现在可能正在做的那样,您可以使用{{1}}和{{1}}。关于使用自定义对象/函数中的dask.delayed,请参阅此HTML line break。
问:如何将任意元数据存储到dask.dataframe?
A :不支持此功能。通常,我建议使用不同的数据结构来存储元数据(如果可能)。如果有很多用例,那么我们应该考虑将它添加到dask数据帧中。如果是这种情况,那么请example notebook。一般认为,在dask.dataframe考虑支持它之前,在Pandas中看到更好的支持是件好事。
问:我在Pandas中大量使用多索引,如何将此工作流程集成到dask.dataframe中?