我的数据看起来像:
一个||b||c
要获取数据,我的 create table 语句是:
创建表
( col1 字符串,
col2 字符串,
col3 字符串)
以“||”结尾的行格式分隔字段;
但这里需要'|' 作为分隔符而不是“||”。
谁可以帮我这个事?
在处理多字符分隔符字符串时,您可以使用RegexSerDe :
create table mytable (
col1 string,
col2 string,
col3 string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "^([^\\|]+)\\|\\|([^\\|]+)\\|\\|([^\\|]+)$",
"output.format.string" = "%1$s %2$s %3$s")
STORED AS TEXTFILE
LOCATION '/path/to/data';
注意:优化正则表达式以满足您的需求