spark sql读数据阶段并行度调整
通过 聚合函数 + case when + explode的方式简洁快速实现多指标竖表的计算,避免冗余的union all
提升多次explode导致效率低下的方法
通过子查询过滤分区时发现并没有直接命中分区,而是全表扫描,导致任务运行很慢,就很奇怪
总结一些常用的调优参数
开发过程中,发现针对主表分区的筛选没有生效,造成对主表的全表扫描,起了27w+的task读数据,非常慢
spark动态写入分区表在开启aqe和不开启aqe时性能上可能会存在特别大的差异,特别是表的数据量特别大,开启aqe比不开启aqe可以快10倍左右
每多一个count(distinct ...)数据就会被拷贝一份,造成数据膨胀非常多