FAQ-Parquet格式表查询字段结果为null
更新时间: 2024-03-11 02:53:24
阅读 4786
FAQ-Parquet格式表查询字段结果为null
问题描述/异常栈
Parquet格式表查询字段结果为null
解决方案
set spark.sql.hive.convertMetastoreParquet=false
问题原因
1、parquet格式文件本身自带meta信息,当通过hive进行读取数据时,hive将使用表的meta信息到parquet的meta信息中进行遍历查找,当hive表meta信息发生变更后,将表meta与文件meta信息不一致,遍历查询失败,所以返回结果为null;
2、parquet格式表插入数据与表定义字段类型不一致,查询时返回结果为null
3、当向Hive metastore中读写Parquet表时,Spark SQL将使用Spark SQL自带的Parquet SerDe(SerDe:Serialize/Deserilize的简称,目的是用于序列化和反序列化),而不是用Hive的SerDe,Spark SQL自带的SerDe拥有更好的性能。这个优化的配置参数为spark.sql.hive.convertMetastoreParquet,默认值为开启。
作者:林帅
文档反馈
以上内容对您是否有帮助?