hive表中的分割槽字段不能以下劃線開頭

2021-10-22 16:26:47 字數 1904 閱讀 1356

create table fct_test_2(id bigint,name string) 

partitioned by(`age` string)

row format delimited

fields terminated by ','

stored as parquet;

這種格式的資料不能直接匯入資料:

1,張三,12

2,李四,13

load data inpath 『/tmp/test.csv』 overwrite into table fct_tmp_2;
一會我們將fct_tmp_2中的資料匯入到fct_test_2中。

參考:靜態匯入:這裡注意select的時候要排除分割槽字段不然會報錯字段不匹配!

insert overwrite table fct_test_2 partition(`age`='18') select id,name from fct_tmp_2
動態匯入:

自己遇到的問題就是:

1)匯入靜態分割槽,可以成功,但是讀取資料的資料:報錯hdfs中分割槽資料夾不存在,但是你去hdfs看的話資料夾是存在的比如"_age=18"資料夾名

2)匯入動態分割槽,壓根就無法匯入,最後會執行報錯

3)對於靜態匯入可以使用alter命令修改location位址,最後這個分割槽就會到這個指定的位址讀取資料,但是對於動態分割槽匯入資料隨著資料變化所以無法中途一一指定分割槽資料夾的名字,所以,hive中最後還是避免使用帶有下劃線的字段作為分割槽字段!

最後,分割槽字段不能下劃線開頭好像與資料格式有關係,如果是orc儲存格式的表的分割槽字段插入資料的時候又可以,,所以推薦還是不要使用下劃線開頭的字段作為hive表的分割槽欄位吧

《轉》hive表時間分割槽字段

近期專案中使用hive做資料統計,建立了一些hive表,在這個過程中,涉及到了設計分割槽的問題,簡單做個總結,以新增表為例 create table if not exists stat install uuid string,ver int,version code int,channel int...

hive檢視一張表的分割槽字段 Hive表分割槽與索引

hive表分割槽 表分割槽是指將資料按照物理分層的方式進行區分開,加快查詢的速度,同時也起到資料快照的作用!建立分割槽表的關鍵字 partitioned by 可以指定單個欄位也可以指定多個字段 partitioned by dt string,country string create table...

hive分割槽表新增字段出現新增欄位null的bug

對於hive分割槽表,我們使用alter語句新增欄位後 如alter table table name add columns age int 再重寫之前已經存在的分割槽,會出現使用查詢語句查出來的新增字段顯示null值。例如 表a 分割槽dt,已有分割槽dt a 由於需求新增了乙個字段,然後重新寫...