Crea tabella HIVE con delimitatore a più caratteri

Voglio creare una tabella HIVE con carattere multi-stringa come delimitatore come

CREATE EXTERNAL TABlE tableex(id INT, name STRING) ROW FORMAT delimited fields terminated by ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/user/myusername'; 

Voglio avere delimitatore come una stringa multipla come “~ *”.

FILELDS TERMINATED BY non supporta i delimitatori a più caratteri. Il modo più semplice per farlo è utilizzare RegexSerDe :

 CREATE EXTERNAL TABlE tableex(id INT, name STRING) ROW FORMAT 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(\\d+)~\\*(.*)$" ) STORED AS TEXTFILE LOCATION '/user/myusername'; 

Si prega di utilizzare MultiDelimitSerde

 CREATE EXTERNAL TABlE tableex(id INT, name STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' WITH SERDEPROPERTIES ("field.delim"="~*") STORED AS TEXTFILE LOCATION '/user/myusername';