SparkDataframe写入Parquet表-更新分区统计信息速度慢

33qvvth1  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(491)

当我在所有任务都成功后将Dataframe中的数据写入parquet表(已分区)时,进程将无法更新分区统计信息。

16/10/05 03:46:13 WARN log: Updating partition stats fast for: 
16/10/05 03:46:14 WARN log: Updated size to 143452576
16/10/05 03:48:30 WARN log: Updating partition stats fast for: 
16/10/05 03:48:31 WARN log: Updated size to 147382813
16/10/05 03:51:02 WARN log: Updating partition stats fast for: 

df.write.format("parquet").mode("overwrite").partitionBy(part1).insertInto(db.tbl)

我的表有>400列和>1000个分区。请让我知道,如果我们可以优化和加速更新分区统计。

jogvjijk

jogvjijk1#

我觉得这里的问题是对于一个>400列的文件来说分区太多了。每次覆盖配置单元中的表时,统计信息都会更新。在您的例子中,它将尝试更新1000个分区的统计信息,并且每个分区都有>400列的数据。
试着减少分区的数量(使用另一个分区列,或者如果它是一个日期列,请考虑按月分区),您应该能够看到性能的显著变化。

相关问题