Apache Hive regexp_extract UDF

use*_*240 4 hadoop hive

我在Apache Hive中遇到了一段代码,如regexp_extract(输入,'[0-9]*',0),有人可以向我解释这段代码的作用吗?谢谢

Cha*_*guy 20

Hive手动DDL,它返回使用模式提取的字符串.例如regexp_extract('foothebar', 'foo(.*?)(bar)', 2)回归bar.

index参数是捕获基团,其是可以取以下值的整数:

  • 0:整个比赛,在我的例子中它将是 foothebar
  • 1:第一组,在我的例子中它将是 the
  • 2:第二组,在我的例子中它将是 bar
  • n:第n组.如果n大于正则表达式中定义的实际组数,则Hive查询将失败.

在您的示例中regexp_extract(input, '[0-9]*', 0),您正在查找由input数字值标识并从数字值开始的列的整个匹配项.

这里有一些例子:

  • regexp_extract('9eleven', '[0-9]*', 0) - >退货 9
  • regexp_extract('9eleven', '[0-9]*', 1) - >查询失败
  • regexp_extract('911test', '[0-9]*', 0) - >退货 911
  • regexp_extract('911test', '[0-9]*', 1) - >查询失败
  • regexp_extract('eleven', '[0-9]*', 0) - >返回空字符串
  • regexp_extract('test911', '[0-9]*', 0) - >返回空字符串