同一条sql语句 ,使用Spark Sql 和 hive Sql 查询数据结果不一致
1、sql语句
2、spark sql 执行结果
3、hive sql 执行结果
4、原因
Hive写入Parquet/Orc表时,实现了自己的一个SerDe,Spark觉的Hive的SerDe性能比较低,于是实现了自己的SerDe进行序列化和反序列化。因此碰到Parquet、Orc的表数据写入时,SparkSQL默认使用自己内部的SerDe。
5、解决方式
.config(“spark.sql.hive.convertMetastoreOrc”, “false”)