1
當我試圖插入Partiotioned表時,出現波紋管錯誤 SemanticException [Error 10044]:Line 1 :23不能插入到目標表中,因爲列號/類型不同'US'':表inslace-0有2列,但查詢有3列。插入Hive表 - 不能插入到目標表中,因爲列號/類型
我的輸入數據
1,aaa,US
2,bbb,US
3,ccc,IN
4,ddd,US
5,eee,IN
6,fff,IN
7,ggg,US
創建蜂巢表TX
create table tx (no int,name string,country string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
創建按國家劃分分區表T1
create table t1 (no int,name string) PARTITIONED BY (country string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
我試過波紋管兩個插入,但未能
INSERT OVERWRITE TABLE t1 PARTITION (country='US')
SELECT * from tx where country = 'US';
INSERT OVERWRITE TABLE t1 PARTITION (country='US')
SELECT no,name,country from tx where country = 'US';
錯誤:SemanticException [錯誤10044]:行1:23無法插入到目標表,因爲列數/類型不同的'US'':表insreg-0具有2列,但查詢具有3列。
RTFM - 海夫不是甲骨文。在Hive中,分區「列」作爲**元數據**進行管理,它們不包含在數據文件中,而是用作子目錄名稱。所以你的分區表只有2個真正的列,你必須用你的SELECT只輸入2列。 –
另一方面,如果您使用了*動態分區* - 即沒有文字值的'INSERT ... PARTITION(country)' - 那麼分區「列」的實際值將不得不作爲*在SELECT中的額外*列,在真正的列之後。 –
謝謝一噸Samson Scharfrichter。是的,它工作.....我發佈了正確的查詢.... –