在ADLS中,parquet文件的分区数是否与作为数据帧读取后的分区数相同?



我在ADLS中有3个拼花文件

2个parquet文件有10个子parquet文件,当我使用pyspark将其作为数据帧在数据库块中读取时,分区的数量等于10,这是预期的行为。

第3个文件172时髦的。当我将它作为数据帧读取时,分区的数量等于89这背后的原因是什么?

使用此命令df.rdd.getNumPartitions()查询一个数据框的分区数。

读取时,Spark正在尝试创建不大于spark.files.maxPartitionBytes指定大小的Spark分区(默认128Mb)。当读取文件时,Spark将查找文件大小,并考虑它-当文件大小小于所需分区大小时,将从多个文件创建分区,当文件大小大于所需分区大小时,则将其拆分为多个分区(如果格式是可拆分的,如Parquet)。

在您的情况下,看起来您有许多文件小于所需的分区大小。

最新更新