从 hiveql 中的字符串中删除最后一个字符
Posted
技术标签:
【中文标题】从 hiveql 中的字符串中删除最后一个字符【英文标题】:Remove last characters from string in hiveql 【发布时间】:2018-02-01 21:05:03 【问题描述】:我需要有关 Hive 的帮助,我在 Hive 中尝试了很多功能,但我无法完成我需要做的事情。
看下面的例子: 3231220-9
我只需要保留所有内容,但不需要“-9”其余部分。
请帮忙!
【问题讨论】:
您要删除的总是“-9”吗?能不能把要求说的更准确一些,再举几个例子? 实际上总是 '-' 后面跟着一个字符.... 【参考方案1】:如果您只想保留第一个连字符之前的数字或其他非数字,则:
regexp_replace(myfield,'[^0-9].*','')
如果它始终是一个连字符,末尾有一个字符:
regexp_replace(myfield,'-.$','')
【讨论】:
我会试试这个! :)【参考方案2】:您也可以使用split()
:
hive> select split('3231220-9','-')[0];
OK
3231220
Time taken: 3.994 seconds, Fetched: 1 row(s)
【讨论】:
【参考方案3】:不像 split() 函数那样优雅,但这也可以:
select substr('12345678-9', 1, instr('12345678-9','-')-1);
Result: 12345678
【讨论】:
以上是关于从 hiveql 中的字符串中删除最后一个字符的主要内容,如果未能解决你的问题,请参考以下文章