我将数据框保存为拼花格式
df.write.parquet('/my/path')
检查HDFS时,我可以看到在镶木目录/ my / path下有10个part-xxx.snappy.parquet文件
我的问题是:part-xxx.snappy.parquet文件是否对应于我的数据帧的一部分?
答案 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分区数的文件。在这种情况下,减少文件数量的常用方法是在写入之前通过键对数据进行重新分区(这实际上为每个分区创建了一个文件)。