作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我在 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 中也有类似的方式
以 parquet
或 json
或任何您想要的格式保存和读取文件非常简单:
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/
我是一名优秀的程序员,十分优秀!