gpt4 book ai didi

java - 如何从 hadoopish 文件夹加载 Parquet 文件

转载 作者:行者123 更新时间:2023-12-02 02:49:07 25 4
gpt4 key购买 nike

如果我在 Java 中以这种方式保存数据帧,...:

df.write().parquet("myTest.parquet");

...,然后它以 hadoopish 方式保存(一个包含大量文件的文件夹)。

是否可以将数据帧保存为单个文件?我尝试了 collect(),但没有帮助。

如果这是不可能的,那么我的问题是我应该如何更改Python代码以从df.write().parquet("myTest.parquet")创建的hadoopish文件夹中读取Parquet文件:

load_df = sqlContext.read.parquet("myTest.parquet").where('field1="aaa"').select('field2', 'field3').coalesce(64)

最佳答案

Spark 将您的文件写入一个目录中,正如您所说,该文件有很多,如果写入操作成功,它会保存另一个名为 _SUCCESS 的空文件

我来自 scala,但我相信 python 中也有类似的方式

parquetjson 或任何您想要的格式保存和读取文件非常简单:

df.write.parquet("path")
loaddf = spark.read.parquet("path")

I tried collect(), but it does not help.

谈到collect,在此类操作中使用它并不是一个好的做法,因为它将您的数据返回给驱动程序,因此您将失去并行计算的好处,并且会导致 OutOfMemoryException 如果数据无法放入内存

Is it possible to save data frame as a single file?

在大多数情况下您确实不需要这样做,如果是这样,请在保存之前在 Dataframe 上使用 repartition(1) 方法

希望对您有帮助,祝好

关于java - 如何从 hadoopish 文件夹加载 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44096013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com