Apache spark pyspark unionByName操作后的多个拼花文件

Apache spark pyspark unionByName操作后的多个拼花文件,apache-spark,pyspark,pyspark-dataframes,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) 我希望它会创建

我正在使用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个拼花文件。
如何创建单个拼花地板文件?

您需要使用
合并
重新分区
来实现此目的。在这种特定情况下,您可以通过以下方式实现每个分区一个文件:

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

感谢它对df.repartition(1.write.partitionBy(partition\u columns.mode(“append”)。\parquet(file\u path)。。。我将df.repartition($“part_columns”)设置为1是否正确?理想情况下,您可以通过分区列wan进行
重新分区
,分区列最好为每个分区提供一个文件,并将保存操作并行化。