使用欧元符号€作为hive表的分割符

现有一份数据,是使用欧元符€作为分隔符,现在想要将数据加载到hive中。

使用欧元符号€作为hive表的分割符_第1张图片

普通的 row format delimited FIELDS TERMINATED BY '€' 并不行,百度找到一篇博客,说使用 -128作为分隔符,也不行。

解决这个问题,需要使用到org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe这个类。这个类常用于多字符分割问题,例如分隔符是这样:<|>。不过现在也能用于解决€分割符问题。

下面给一个示例:

create external table test(
id string,
name string,
status int
)
partitioned by (dt string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' 
WITH SERDEPROPERTIES ("field.delim"="€")
STORED AS TEXTFILE;
ALTER TABLE test ADD PARTITION(dt='20190403') LOCATION '/user/root/extractdata/test'; 

查询结果:

使用欧元符号€作为hive表的分割符_第2张图片

你可能感兴趣的:(hive分割符€,欧元符作为hive分隔符,hive分隔符€,hive)