
一般由于業務需要,會對hive的表有增加欄位的操作,如下:
ALTER TABLE 庫名.表名 add columns (欄位名 欄位型別 comment '注釋') ;
但是上面這種語法只能是對表的當前和以后新的磁區生效,若存在歷史磁區,那么MySQL上的元資料資訊沒有修改,
若查詢歷史磁區,就會報上面的return code 2
解決方案:
1、直接在添加欄位的時候加上 CASCADE
ALTER TABLE 庫名.表名 add columns (欄位名 欄位型別 comment '注釋') CASCADE;
官方給出解釋:cascade的中文翻譯為“級聯”,也就是不僅變更新磁區的表結構(metadata),同時也變更舊磁區的表結構
2、若沒加CASCADE已經修改了表結構了,可以在查詢時設定下面引數
set hive.vectorized.execution.enabled=false;--關閉矢量查詢
set hive.vectorized.execution.reduce.enabled=false;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/344162.html
標籤:其他
上一篇:通過kafka,canal進行資料異構同步的一套技術方案
下一篇:java 多執行緒基礎
