比如,有如下格式文件
01||zhangsan||23
02||lisi||24
hive默认情况下只支持单字节分隔符,如果数据中的分隔符是多字节的,则hive默认是处理不了的。需要使用正则Serde
create table if not exists t_regex(
id string,
uname string,
age int
)
row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe'
with serdeproperties(
'input.regex'='(.*)\\|\\|(.*)\\|\\|(.*)',
'output.format.string'='%1$s %2$s %3$s'
)
stored as textfile
;
导入以及查看数据
load data local inpath '/data/regex.txt' into table t_regex;
select * from t_regex;
结果如下
id | uname | age |
---|---|---|
01 | zhangsan | 23 |
02 | lisi | 24 |
总结
- 只要内容有规律,就可以想办法导入
hive