一、正常建表,采用默認的分隔符:
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