Hive 提取拆分字符串列表的最后一个元素

Hive 提取拆分字符串列表的最后一个元素,hive,impala,Hive,Impala,我试图获取一个正则表达式,并将其按预先确定的字符拆分,然后提取返回列表的最终值 例如,我的字符串可能采用以下形式: name WAYNE.ROONEY.226 ROSS.BARKLEY.HELLO.113 ADAM.A122 Pythonically,我想做的是: for x in list: my_val = x.split('.')[-1] #Return the last element of the list when split on . e、 g.期望输出: name

我试图获取一个正则表达式,并将其按预先确定的字符拆分,然后提取返回列表的最终值

例如,我的字符串可能采用以下形式:

name
WAYNE.ROONEY.226
ROSS.BARKLEY.HELLO.113
ADAM.A122
Pythonically,我想做的是:

for x in list:
  my_val = x.split('.')[-1] #Return the last element of the list when split on .
e、 g.期望输出:

name                         value
WAYNE.ROONEY.226             226
ROSS.BARKLEY.HELLO.113       113
ADAM.A122                    A122
有人能给我一些关于蜂巢或黑斑羚的指示吗

如果我可以创建一个视图,理想情况下,这将是完美的,但我也很高兴用它生成实际输出,然后重新上传到表中

谢谢大家!

对于蜂巢:

select regexp_extract(NAME, '\\.([^\\.]+)$', 1) as VALUE
from WHATEVER

请大家[编辑]学习正则表达式的威力…

我回到办公室后会尝试一下。我确实阅读了文档,遇到了
split
,但无法提取它返回的数组的最后一个元素。我认为你的答案也不起作用-你总是提取第一个索引,挑战是提取最后一个元素,这是动态的和未知的。正则表达式(用Java方言)翻译为“获取所有放置在点和字符串结尾之间的非点字符”,因此根据定义只能有1个匹配。。。使用
sed
命令行,整个“regexp\u extract”内容的等价物将是旧式语法中的
s/^.*\([^\.][^\.]*\)$/\1/
。在处理字符串时,通常可以使用两个正则表达式将数十行过程代码替换为一行。好吧,这有点神秘,但它是有效的。而
sed
当你只想清理一个输入文件时,它就会震动。啊哈。谢谢你,参孙。老实说,Regex一直是我的弱点。谢谢你,我会试一试,看看是否有效,然后再报告。