运行相同的sql,hive生成的文件是2.5G,而spark sql生成的文件则是4.1G。我已经将spark.sql.org.compress.codec设置为zlib,这是我们在hive中使用的,并将spark.ql.org.impl设置为hive,我的spark版本是2.4.0
很抱歉我的问题不够清楚,因为sql很大,超过500行,而且对业务敏感。
无论如何,经过调查,我发现问题是由MR/Spark shuffle差异引起的:MR排序在reduce中,而Spark没有。排序后的数据对游程编码非常友好。