从 pyspark 导入 TensorFlow 数据

Gia*_*chi 6 python pyspark tensorflow

我想在数百 GB 的数据上创建一个预测模型。数据需要一些非密集的预处理,我可以在 pyspark 中进行,但在 tensorflow 中不行。在我的情况下,将预处理的结果直接传递给 TF 会方便得多,理想情况下将 pyspark 数据帧视为 TF 的虚拟输入文件,而不是将预处理后的数据保存到磁盘。但是,我对如何做到这一点一无所知,而且我在互联网上找不到任何地方。


经过一番思考,在我看来,我实际上需要一个迭代器(如由 定义的tf.data.Iterator)来处理 spark 的数据。然而,我在网上发现一些评论暗示 Spark 的分布式结构使它变得非常困难,如果不是不可能的话。为什么这样?想象一下,我不关心行的顺序,为什么不可能迭代火花数据?

Dav*_*rks 4

听起来你只是想使用tf.data.Dataset.from_generator()你定义的 python 生成器来读取 Spark 中的样本。虽然我不太了解 Spark,但我确信您可以对将运行张量流模型的服务器进行缩减。更好的是,如果您要分发训练,则可以减少需要最终数据集的某些分片的服务器集。

导入数据程序员指南Dataset更详细地介绍了输入管道。张量流Dataset将为您提供一个可直接由图形访问的迭代器,因此无需tf.placeholderstf.data.Dataset.from_generator()您编写的代码之外使用或编组数据。