Hive RegexSerDe 未给出正确的输出



我有输入文本文件,其数据为

0000856214AB25 256 T PL1423AS

2563458547CD12 748 S AK2523YU

在正则表达式查询下面使用以获取输出

hive> CREATE TABLE test_regex(
>f1 STRING,f2 STRING,
>f3 STRING,f4 STRING,
>f5 STRING,f6 STRING,
>f7 STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' 
>WITH SERDEPROPERTIES ("input.regex" = 
>"([0-9]{10})([A-Z]{2})([0-9]{2})\s+([0-9]{3})\s+([A-Z]{1})\s+([A-Z]{2})([A-Z0-9]{6})",
>"output.format.string" = "%1$s %2$s %3$s %4$s %5s %6s %7s")
>STORED AS TEXTFILE;

输出:

hive> select *from test_regex;
0000856214  AB  25  256 T   PL  1423AS
2563458547  CD  12  748 S   AK  2523YU

但是当我尝试使用以下查询获取输出时

Query: Select f1 from test_regex;
or     Select f1,f3,f5 from test_regex;

输出:错误

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.mr.MapRedTask 返回代码 2

'..有人可以帮助我重新解决上述问题吗?

提前谢谢。

这不是真正的错误,以下是找到它的方法:转到Hadoop作业跟踪器Web仪表板,找到失败的Hive mapReduce作业,并查看失败任务的日志。这将向您显示真正的错误。

或在 tmp/user/hive 中.log并查看日志

由 org.apache.hadoop.hive.contrib.serde2.RegexSerDe 未找到

转到 http://www.java2s.com/Code/Jar/h/Downloadhivecontrib081jar.htm

download jar hive-contrib-0.8.1.jar

然后在 Hive 中,根据您的系统路径添加 jar

 ADD JAR /home/user17/hive/hive-contrib-0.8.1.jar
select f1 from test_regex; 

输出

0000856214
2563458547

相关内容

  • 没有找到相关文章

最新更新