Apache spark 为什么spark显示文件数和分区数的差异?

Apache spark 为什么spark显示文件数和分区数的差异?,apache-spark,pyspark,pyspark-sql,Apache Spark,Pyspark,Pyspark Sql,当我查询一个表并检查该df的可用分区数是14时。数据大小超过10 GB 但当我看到表格位置时,有400个可用的零件文件,它们是spark在将df保存为表格时创建的 理想情况下,分区的数量应该等于输出文件的数量,对吗 有人能帮我理解这个场景吗?请参阅,以获得非常详细的解释。 不,在某些情况下,分区数与文件数相等并不理想(例如,当文件很大时,最好将每个分区分成几个分区)谢谢,这有助于我了解它创建的文件数,但我仍然不明白为什么在读写时分区会有差异?虽然我问它是14,但最终结果是400。有什么线索吗?哦

当我查询一个表并检查该df的可用分区数是14时。数据大小超过10 GB

但当我看到表格位置时,有400个可用的零件文件,它们是spark在将df保存为表格时创建的

理想情况下,分区的数量应该等于输出文件的数量,对吗

有人能帮我理解这个场景吗?

请参阅,以获得非常详细的解释。
不,在某些情况下,分区数与文件数相等并不理想(例如,当文件很大时,最好将每个分区分成几个分区)

谢谢,这有助于我了解它创建的文件数,但我仍然不明白为什么在读写时分区会有差异?虽然我问它是14,但最终结果是400。有什么线索吗?哦,我想你的意思是你正在读400个文件,在spark中有14个分区。你是说你读了14个分区,得到了400个输出?您的查询中是否有联接或聚合?我建议您检查
spark.sql.shuffle.partitions
,默认值为200。如果您的查询涉及一次洗牌,那么除非您在之后重新分区或合并,否则最终将得到相当数量的分区(和文件)