加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 在蜂巢中正则表达式

发布时间:2020-12-14 05:37:53 所属栏目:百科 来源:网络整理
导读:我正在Hive中学习简单的正则表达式.我正在按照教程和简单的hql语句获取错误? select REGEXP_EXTRACT( 'Hello,my name is Ben. Please visit','Ben' ) 这是我收到的错误消息: 错误的参数”Ben”:org.apache.hadoop.hive.ql.metadata.HiveException:无法执
我正在Hive中学习简单的正则表达式.我正在按照教程和简单的hql语句获取错误?

select REGEXP_EXTRACT( 'Hello,my name is Ben. Please visit','Ben' )

这是我收到的错误消息:

错误的参数”Ben”:org.apache.hadoop.hive.ql.metadata.HiveException:无法执行方法public java.lang.String org.apache.hadoop.hive.ql.udf.UDFRegExpExtract.evaluate(java.类org.apache.hadoop.hive.ql.udf.UDFRegExpExtract的对象org.apache.hadoop.hive.ql.udf.UDFRegExpExtract@ec0c06f上的lang.String,java.lang.String)参数{Hello,我的名字是本.请访问:大小为2的java.lang.String,Ben:java.lang.String}

它适用于其他语言,但我想在Hive中学习它.任何帮助,将不胜感激.

解决方法

您必须提供第三个参数,即要提取的组索引.

要提取完整匹配,请使用0:

select REGEXP_EXTRACT( 'Hello,'Ben',0)

要提取捕获组值,请使用组索引,例如

select REGEXP_EXTRACT( 'Hello,'name is (w+)',1)

将提取本.

见this reference:

regexp_extract(string subject,string pattern,int index)
Returns the string extracted using the pattern. For example,regexp_extract('foothebar','foo(.*?)(bar)',2) returns 'bar.' Note that some care is necessary in using predefined character classes: using 's' as the second argument will match the letter s; 's' is necessary to match whitespace,etc. The 'index' parameter is the Java regex Matcher group() method index. See docs/api/java/util/regex/Matcher.html for more information on the 'index' or Java regex group() method.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读