如何从 hadoopish 文件夹加载镶木地板文件
How to load parquet files from hadoopish folder
如果我在 Java 中以这种方式保存数据框,...:[=14=]
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)
Is it possible to save data frame as a single file?
是的,但您不应该这样做,因为您可能会对单个 JVM 施加太大压力,这不仅会导致性能下降,还会导致 JVM 终止,从而导致整个 Spark 应用程序失败。
所以,是的,这是可能的,您应该 repartition(1)
有一个分区:
repartition(numPartitions: Int): Dataset[T] Returns a new Dataset that has exactly numPartitions partitions.
how should I change the Python code for reading Parquet files from hadoopish folder
从你所谓的 "hadoopish" 文件夹中加载数据集根本不关心内部结构,并将其视为单个文件(即隐藏目录)。
这是文件存储方式的内部表示,不会影响加载它的代码。
Spark 将您的文件写入一个目录,如您所说,这个文件很多,如果写入操作成功,它会保存另一个名为 _SUCCESS
的空文件
我来自 scala,但我相信 python
中也有类似的方法
以 parquet
或 json
或您想要的任何格式保存和阅读您的文件很简单:
df.write.parquet("path")
loaddf = spark.read.parquet("path")
I tried collect(), but it does not help.
谈到 collect
,在此类操作中使用它不是一个好习惯,因为它 returns 将您的数据传输给驱动程序,因此您将失去并行计算的好处,并且会导致OutOfMemoryException
如果数据无法放入内存
Is it possible to save data frame as a single file?
在主要情况下您确实不需要这样做,如果是这样,请在保存之前在 Dataframe
上使用 repartition(1)
方法
希望对您有所帮助,此致
如果我在 Java 中以这种方式保存数据框,...:[=14=]
df.write().parquet("myTest.parquet");
...,然后以 hadoopish 方式保存(包含大量文件的文件夹)。
是否可以将数据框保存为单个文件?我试过 collect()
,但没有用。
如果不可能,那么我的问题是我应该如何更改 Python 代码以从 df.write().parquet("myTest.parquet")
:
load_df = sqlContext.read.parquet("myTest.parquet").where('field1="aaa"').select('field2', 'field3').coalesce(64)
Is it possible to save data frame as a single file?
是的,但您不应该这样做,因为您可能会对单个 JVM 施加太大压力,这不仅会导致性能下降,还会导致 JVM 终止,从而导致整个 Spark 应用程序失败。
所以,是的,这是可能的,您应该 repartition(1)
有一个分区:
repartition(numPartitions: Int): Dataset[T] Returns a new Dataset that has exactly numPartitions partitions.
how should I change the Python code for reading Parquet files from hadoopish folder
从你所谓的 "hadoopish" 文件夹中加载数据集根本不关心内部结构,并将其视为单个文件(即隐藏目录)。
这是文件存储方式的内部表示,不会影响加载它的代码。
Spark 将您的文件写入一个目录,如您所说,这个文件很多,如果写入操作成功,它会保存另一个名为 _SUCCESS
我来自 scala,但我相信 python
中也有类似的方法以 parquet
或 json
或您想要的任何格式保存和阅读您的文件很简单:
df.write.parquet("path")
loaddf = spark.read.parquet("path")
I tried collect(), but it does not help.
谈到 collect
,在此类操作中使用它不是一个好习惯,因为它 returns 将您的数据传输给驱动程序,因此您将失去并行计算的好处,并且会导致OutOfMemoryException
如果数据无法放入内存
Is it possible to save data frame as a single file?
在主要情况下您确实不需要这样做,如果是这样,请在保存之前在 Dataframe
上使用 repartition(1)
方法
希望对您有所帮助,此致