当前位置:   article > 正文

Hive建表时,如何以两个或多个空格为分割(正则切割)_hive建表空格分割

hive建表空格分割
在hive建表时使用默认的LazySimpleSerde类切割源文件时,指定以两个空格切割会导致第二列为null,如下:

源文件:

  1. ..
  2. 10000 a
  3. 10000 b
  4. 10000 c
  5. 20000 c
  6. 20000 d
  1. -- 创建一个Num表, 并指定以两个空格为分隔符
  2. create external table num(
  3. num string,
  4. type string
  5. )row format delimited fields terminated by ' ';
  6. select * from num;

查询结果:

这时,默认的row format delimited fields terminated by '  ' 无法满足条件,就可以使用官方提供的'org.apache.hadoop.hive.serde2.RegexSerDe'切割:
  1. drop table num
  2. create table test(
  3. num string,
  4. type string
  5. )row format SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
  6. with serdeproperties ('input.regex' = '([^ ]*) ([^ ]*)');

分别用两个正则匹配两列,中间空两个空格。

可以查出

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/562597
推荐阅读
相关标签
  

闽ICP备14008679号