所以我有一个oracle查询:
SELECT REGEXP_SUBSTR('BOND~CRR~CD~DAKAR_2299913320','[^~]+',1,3) FROM DUAL
该查询的结果应类似于:CD
现在,我的问题是如何在hive中实现该查询,因为据我所知,hive没有REGEXP_SUBSTR语法,到目前为止,我已经尝试过的是:
select regexp_extract('BOND~CRR~CD~DAKAR_2299913320','[^~]+',0)
但结果是:BOND
当我将查询更改为:
select regexp_extract('BOND~CRR~CD~DAKAR_2299913320','[^~]+',2)
它被赋予了一个语义执行:错误的参数“ 2”
那么有什么方法可以在蜂巢中实现该oracle查询吗?
答案 0 :(得分:1)
您可以使用SPLIT Function代替REGEXP
select split('BOND~CRR~CD~DAKAR_2299913320','[\~]')[2]
有关更多详细信息,请参见下面的链接