hive建立分割槽表 指定分隔符_Hive建表時指定分隔符或使用多字元分隔
一、正常建表,採用預設的分隔符:
hive 預設的欄位分隔符為ascii碼的控制符\001,建表的時候用fields terminated by '\001',如果要測試的話,造資料在vi 開啟檔案裡面,用ctrl+v然後再ctrl+a可以輸入這個控制符\001。按順序,\002的輸入方式為ctrl+v,ctrl+b。以此類推。
二、指定特定的特殊符號作為分隔符:
CREATE TABLE test(id int, name string ,tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'LINES TERMINATED BY '\n'STORED AS TEXTFILE;
上面使用了'\t'作為了欄位分隔符,'\n'作為換行分隔符。如果有特殊需求,可以自己動手改一下這兩個符號就行了。
三、使用多字元作為分隔符:
假設我們使用【##】來作為欄位分隔符,【\n】作為換行分隔符,則這裡有兩個方法:
1、使用MultiDelimitSerDe的方法來實現:
CREATE TABLE test(id int, name string ,tel string) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' WITH SERDEPROPERTIES ("field.delim"="##") LINES TERMINATED BY '\n'STORED AS TEXTFILE;
2、使用RegexSerDe的方法實現:
CREAET TABLE test(id int, name string ,tel string) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES ("input.regex" = "^(.*)\\#\\#(.*)$") LINES TERMINATED BY '\n'STORED AS TEXTFILE;
————————————————
版權宣告:本文為CSDN博主「weixin_39989159」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/weixin_39989159/article/details/111789415