1. 程式人生 > >hive 自動載入資料多分割槽目錄

hive 自動載入資料多分割槽目錄

在使用hive建表載入資料時,如果是一個分割槽,那麼用alter table mytable ADD IF NOT EXISTS PARTITION(p1='p1') location 'hdfs://xxx' 或者直接用msck repair table mytable都可以將指定目錄的資料載入到分割槽

但是對於多級目錄來說,比如

  • /data/year=/month=/day=/source1/abc.log
  • /data/year=/month=/day=/source2/def.log
這種結構,如果建立表的時候分割槽為year,month,day,那麼 可以用add partition 方式是可以載入資料到指定分割槽,但是msck會報錯,主要原因是msck必須要目錄結構滿足:

/partition_name=partition_value/

且不能包含特殊字元

當多級目錄時,這時候會有/特殊字元,那麼可設定hive.msck.path.validation為skip或者ignore 就可以了

set hive.msck.path.validation = ignore