hive add columns后新插入列数据为空,但是用presto查询的时候却有数据
Posted 信小呆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive add columns后新插入列数据为空,但是用presto查询的时候却有数据相关的知识,希望对你有一定的参考价值。
hive在新加列(add columns)后,再load数据时,理论上来说新增的列如果有数据的话会展示出来;
解决办法:
方法一:重建分区
方法二:手动更新元数据
----在元数据库里执行如下语句
1、select CD_ID from SDS where LOCATION=‘hdfs://ods.db/tablename’; -------查找表对应的CD_ID
2、SELECT * FROM SDS WHERE LOCATION LIKE ‘hdfs://bidc/ods.db/tablname/pt=%’; --查找表总共有哪些分区
3、UPDATE SDS SET CD_ID=(查询1中的CD_ID的值) WHERE LOCATION LIKE ‘hdfs://bidc/ods.db/tablename/pt=%’; ----更新全部分区,如果要指定更新的分区,把%改为确切的分区值即可。
原因:
查看元数据时,发现表的元数据没有发生变化,没有新增加进这一列。
这个表是分区表,drop数据后分区还在,格式还在,add新字段后不更新源数据。presto查询使用元数据,所以能查出来数据。are you ok?
以上是关于hive add columns后新插入列数据为空,但是用presto查询的时候却有数据的主要内容,如果未能解决你的问题,请参考以下文章
pandas在dataframe数据列中插入全是全是固定数值或者固定文本内容的数据列(add a column to pandas dataframe with constant values)
当 add_column 使用默认选项并且没有 null:false 时是不是有可能插入 null