1

目前,在处理复杂的嵌套结构时,Spark 结构和 Dask 之间的集成似乎很麻烦。尽管镶木地板加载是正在进行的大量工作的一部分(fastparquet,pyarrow),但专门转储具有嵌套结构以供 Dask 读取的 Spark Dataframe 似乎还不是很可靠;

所以我的后续问题 - 假设我可以在 Spark 中进行一些转换并将 DataFrame 转换为包含自定义类对象的 RDD;有没有办法可靠地使用自定义类对象转储 Spark RDD 的数据并在 Dask 集合中读取它?显然,您可以将 rdd 收集到 python 列表中,对其进行腌制,然后将其作为普通数据结构读取,但这消除了加载大于内存数据集的机会。dask 可以使用火花酸洗之类的东西来加载分布式泡菜吗?

4

1 回答 1

0

我通过执行以下操作解决了这个问题

拥有一个带有自定义对象列表作为行值的 Spark RDD,我创建了一个 rdd 版本,在其中我使用cPickle.dumps. 然后将此 RDD 转换为带有字符串列的简单 DF 并将其写入 parquet。Dask能够读取结构简单的镶木地板文件。然后反序列cPickle.loads化以获取原始对象

于 2018-11-06T13:53:12.227 回答