pyspark unionByName操作后的多个实木复合地板文件

时间:2019-11-17 10:49:36

标签: apache-spark pyspark pyspark-dataframes

我正在做unionByName,将3个py spark数据帧组合到一个数据帧中。

df = df_array[0]
df = df.unionByName(df_array[1])
df = df.unionByName(df_array[2])
part_columns = ["part1","part2", "part3","part4"]
df.write.partitionBy(part_columns).mode('append').parquet(file_path)

我希望它将创建一个实木复合地板文件,但正在创建3个实木复合地板文件。 如何创建单个实木复合地板文件?

1 个答案:

答案 0 :(得分:0)

您需要使用coalescerepartition来实现。在这种情况下,您可以通过以下方式在每个分区上实现一个文件

df.repartition($"part_columns").write.partitionBy("part_columns").mode(SaveMode.Append).parquet(file_path)