我正在调优一个spark(v2.2.3)sql作业,它读取parquet(大约1tb的数据)。我读到更多的Parquet地板零件到一个单一的Spark分区,通过增加 spark.sql.files.maxPartitionBytes
从默认128mb到1280mb。效果非常好(所有任务的总时间减少了30%左右)。我很难理解的是,为什么总的输入大小会大大减少。默认128mb时,数据读入12033个分区,总输入为61.9GB。通过改变配置,数据被读入1651,输入大小不到一半——只有26.5 gb。毫无疑问,这是一个很好的结果,但我只是试图理解它,在最后-读取相同数量的记录,相同的精确列。如果有关系,使用所有其他默认值-hdfs块大小为128mb,parquet块大小(行组)为128mb,parquet页大小为1mb。
暂无答案!
目前还没有任何答案,快来回答吧!