我有输入文本文件,其数据为
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