hive多分隔符外表支持

在hive 外表关联文本的时候 有时会遇到不是一个长度的分割符比如"~@" 这种。这个时候使用shell命令多处理一步处理成单分隔符也可以,但是会有出错的风险。我们可以通过hive中指定的序列类来完成多分隔符的识别。


CREATE EXTERNAL TABLE text_mid1(
id STRING ,name STRING 
)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' 
WITH SERDEPROPERTIES('input.delimited'='~@' )      -- 指定分隔符s
LOCATION '/tmp/multidelimit_txt'
;

需要在 SERDE中指定 ‘org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe 类
然后在WITH SERDEPROPERTIES 指定’input.delimited’=‘@