如何在hive sql中应用多次regexp_extract函数



我有一个这样的查询:

select 
name,
split(name, ' ')[0] as name_1
from table

我希望对一个正则表达式应用两次,这可能吗?

我所做的和它没有起作用的是:

select 
name,
split(name, ' ')[0] as name_1,
split(regexp_extract(name, "^(.*?)\s(.*)",2), ' ')[0] as name_1,
from table

如果我有:姓名:Mark Bill Gates Potter预期结果将是:Gates Potter

地址:亚利桑那州第1.4街294号门预期:st.14Arizona

姓名栏是全名(例如Mark Bill Gates Potter(,我的想法是保留第三个单词直到最后一句(例如Gates Potter.(。这怎么可能呢?

我在蜂巢工作。

我的想法是保留第三个单词直到最后一句(例如Gates Potter(

可能是:

split(name, ' ')[2] || ' ' || split(name, ' ')[3] as name_3_4

如果你真的想要第三个单词的所有内容,正则表达式会更好:

regexp_replace(name, '^\S+\s*\S+\s*', '') as name_3_and_more

这里的想法是用空字符串替换前两个单词。

最新更新