pyspark 我如何打开一个大 parquet 文件与Keras?

e5nszbig  于 2022-11-01  发布在  Spark
关注(0)|答案(2)|浏览(236)

我试着寻找这个,但没有任何有意义的结果。
我有一个keras模型,有多个输入,我的数据对我的Pandas方法来说太大了,所以我对它进行了预处理,并将其保存为 parquet 文件。我不知道如何用keras打开它。
我查找了tf.datasets,但我仍然不能想出如何读取可以传递给我的模型的 parquet 文件。
有人知道如何使用开放式 parquet 文件吗?我似乎不知道如何在tensorflow 中做到这一点,也找不到任何相关的keras。

cl25kdpy

cl25kdpy1#

你也许可以保持你的Pandas方法,但你必须把你的数据分解成块。
如果您已经将其分解以创建您的 parquet 文件,您应该能够使用相同的方法,一次只在panda中打开您的数据的子集。
如果你需要从你的parquet文件中提取数据,这里有一个关于如何为Pandas Dataframe 创建数据块的链接:How to read a CSV file subset by subset with Pandas?
一旦有了数据块,您就可以model.fit对该数据块调用www.example.com,然后继续下一个数据块并调用model.fit

xdnvmnnf

xdnvmnnf2#

您可以查看**TensorFlow I/O**,这是TensorFlow内置支持中不提供的文件系统和文件格式的集合。在这里,您可以找到tfio.IODataset.from_parquettfio.IOTensor.from_parquet等功能,以处理 parquet 文件格式。

!pip install tensorflow_io -U -q 
import tensorflow_io as tfio

df = pd.DataFrame({"data": tf.random.normal([20], 0, 1, tf.float32),
                   "label": np.random.randint(2, size=(20))})
df.to_parquet("df.parquet") 
pd.read_parquet('/content/df.parquet')[:2]
    data    label
0   0.721347    1
1   -1.215225   1

ds = tfio.IODataset.from_parquet('/content/df.parquet')
ds

仅供参考,我认为您还应该考虑使用feather,而不是parquet文件格式AFAIK,parquet文件加载起来可能非常重,可能会减慢您的培训管道,而feather相对较快(非常快)。

相关问题