我的配置单元数据库中有一个url字段是字符串类型,具有以下特定模式:
/猫-g294078-o303631-maine\u coon\u and\u tabby.html
我想提取字符串末尾附近的两个cat“类型”,结果如下:
缅因州
基本上,我只想提取-作为一个小写字符串-cat“types”,它总是由“\u”和“\u”分隔,前面是“-”,后面是“.html”。
在hql中有没有一种简单的方法可以做到这一点?我知道hql的功能有限,否则我会使用regexp或substring之类的东西。
谢谢,克拉克
2条答案
按热度按时间lf3rwulv1#
hql确实有一个
substr
此处引用的功能:https://cwiki.apache.org/confluence/display/hive/languagemanual+udf#languagemanualudf-stringfunctions返回从某个值开始到结束(或特定长度)的字符串片段我也会利用这个功能
locate
以确定'-'和'.'在url中的位置。只要总是有三个破折号和三个下划线,这应该是相当直接的。
否则可能需要case语句来确定破折号和下划线的数量。
cuxqih212#
解决方案在这里。。。
有趣的是,下面的方法不起作用。。。jjford3,知道为什么吗?