Hive找到最后一次出现

时间:2013-10-24 17:58:10

标签: regex hadoop hive

如果在其他地方有答案,我道歉。

我有一个存储在Hive字段中的字符串,可以有0到n次出现的'&'每次出现后跟着文字。

在Hive中,我想找到最后一次出现并在该事件发生后抓取所有文本。

使用......

split(field1,'[&]')[n]

......我可以抓住第n次出现,但我无法预测决赛或倒数。

我能够让以下工作:

reverse(split(reverse(field1),'[&]')[0])

但是,使用三个函数似乎需要很多不必要的开销。我知道你可以在regexp_extract()中使用正则表达式,但我对正则表达式感到困惑。

regexp_extract()会更快,如何实现?

1 个答案:

答案 0 :(得分:0)

[^&]*$

捕获所有非&的字符,直到字符串$结束