实木复合地板文件夹下的一个实木复合地板文件是否为分区?

时间:2020-03-29 16:59:05

标签: apache-spark pyspark apache-spark-sql parquet partition

我将数据框保存为拼花格式

df.write.parquet('/my/path')

检查HDFS时,我可以看到在镶木目录/ my / path下有10个part-xxx.snappy.parquet文件

我的问题是:part-xxx.snappy.parquet文件是否对应于我的数据帧的一部分?

2 个答案:

答案 0 :(得分:2)

是的,部分**文件是在写入HDFS时根据数据框中的 number of partitions 创建的。

要检查数据框中的number of partitions

df.rdd.getNumPartitions()

要控制写入文件系统的文件数量,我们可以根据需要使用.repartition (or) .coalesce() (or) dynamically

答案 1 :(得分:1)

是的,这会为每个Spark分区创建一个文件。

请注意,您还可以按某些属性对文件进行分区:

df.write.partitionBy("key").parquet("/my/path")

在这种情况下,Spark将为每个实木复合地板分区创建最多Spark分区数的文件。在这种情况下,减少文件数量的常用方法是在写入之前通过键对数据进行重新分区(这实际上为每个分区创建了一个文件)。