Apache spark 合并(10)。在S3中写入1个文件

Apache spark 合并(10)。在S3中写入1个文件,apache-spark,pyspark,Apache Spark,Pyspark,我们正在运行以下代码将表写入S3: dataframe.coalesce(10).write.mode("overwrite").parquet(destination_path) 当我检查S3时,它只有一个拼花文件。如何将其写入10个文件?如果要增加分区数,请使用重新分区。合并只会减少数量 dataframe.repartition(10).write.mode("overwrite").parquet(destination_path) 如果要增加

我们正在运行以下代码将表写入S3:

dataframe.coalesce(10).write.mode("overwrite").parquet(destination_path)

当我检查S3时,它只有一个拼花文件。如何将其写入10个文件?

如果要增加分区数,请使用重新分区。合并只会减少数量

dataframe.repartition(10).write.mode("overwrite").parquet(destination_path)

如果要增加分区数,请使用重新分区。合并只会减少数量

dataframe.repartition(10).write.mode("overwrite").parquet(destination_path)

如果我已经有超过10个分区怎么办?
重新分区
可以增加或减少分区的数量
coalesce
只适用于减少,但它比
repartition
更有效当我查看查询计划时,我看到
Scan JDBCRelation(FilePageMetadata)[numPartitions=150]
coalesce(10)不应该将其拆分为10个文件吗?该数字只有在读取数据后才是真的。在数据帧上进行操作后,您可能会得到更少的分区。如果已经有10个以上的分区,该怎么办?
重新分区
可以增加或减少分区的数量
coalesce
只适用于减少,但它比
repartition
更有效当我查看查询计划时,我看到
Scan JDBCRelation(FilePageMetadata)[numPartitions=150]
coalesce(10)不应该将其拆分为10个文件吗?该数字只有在读取数据后才是真的。在数据帧上操作之后,您可能会得到更少的分区