Apache spark 当增加maxPartitionBytes时,输入大小变得更低
我正在调整spark(v2.2.3)sql作业,该作业读取拼花地板(大约1TB的数据)。通过将Apache spark 当增加maxPartitionBytes时,输入大小变得更低,apache-spark,apache-spark-sql,parquet,Apache Spark,Apache Spark Sql,Parquet,我正在调整spark(v2.2.3)sql作业,该作业读取拼花地板(大约1TB的数据)。通过将spark.sql.files.maxPartitionBytes从默认128MB增加到1280MB,我将更多的拼花地板部件读入单个spark分区。 效果非常好(所有任务的总时间减少了约30%)。 我很难理解的是,为什么总的输入大小会大大减少。 默认为128MB时,数据被读入12033个分区,总输入为61.9GB。通过改变配置,数据被读取到1651中,输入大小不到一半——只有26.5 GB。 毫无疑问,
spark.sql.files.maxPartitionBytes
从默认128MB增加到1280MB,我将更多的拼花地板部件读入单个spark分区。
效果非常好(所有任务的总时间减少了约30%)。
我很难理解的是,为什么总的输入大小会大大减少。
默认为128MB时,数据被读入12033个分区,总输入为61.9GB。通过改变配置,数据被读取到1651中,输入大小不到一半——只有26.5 GB。
毫无疑问,这是一个很好的结果,但我只是试图理解它,在最后-相同数量的记录被读取,相同的精确列。
如果重要的话,使用所有其他默认值-HDFS块大小为128MB,拼花块大小(行组)为128MB,拼花页面大小为1MB