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?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章