情況:
表: test_table
已有字段 (a,b,c)
已有分割槽:
day_key=20131201
day_key=20131202
day_key=20131203
需求是需要新增乙個欄位d
並且重新生成 所有分割槽的資料
步驟 1.新增字段:
alter table test_table add columns (d string);
2.執行語句
insert overwrite table test_table
select ....
此時問題產生了:
發現 新加的字段d 列 生成出來的資料
在已有的分割槽中
全是null
解決辦法:
刪除對應的分割槽 day_key=20131201
alter table test_table drop partition (day_key='20131201');
然後再次生成資料 發現d列的資料產生了。
希望能幫助有同樣問題的人。
hive分割槽表新增字段出現新增欄位null的bug
對於hive分割槽表,我們使用alter語句新增欄位後 如alter table table name add columns age int 再重寫之前已經存在的分割槽,會出現使用查詢語句查出來的新增字段顯示null值。例如 表a 分割槽dt,已有分割槽dt a 由於需求新增了乙個字段,然後重新寫...
Hive分割槽表新增欄位為null的bug及解決方法
解決方法 解決該問的關鍵是刪除舊分割槽,因為雖然hdfs上的資料更新了,但是我們查詢的時候仍然查詢的是舊的元資料資訊 即mysql中的資訊 在我們插入完資料之後,需要刪除元資料的舊分割槽 alter table table name drop partition pt d 20170101 然後有兩...
Hive分割槽表新增欄位為null的bug及解決方法
原文 最近工作中遇到乙個問題 對於分割槽表新增字段,向已存在分割槽中插入資料,結果新增欄位的值全部為null。注 是已存在分割槽,新的分割槽並不會產生該問題 無論是內部表還是外部表均有該問題。在新增字段之後及時對錶進行msck repair table 仍然存在問題。問題描述 hive版本 2.2....