相当于 HIVE 中的 split_function()

问题描述

根据我的项目要求,我提出了一个复杂的逻辑,其中包含如下“一小部分”:

    'regexp_extract(split_part(vw_cart.order_detail,':',2),'[0-9]+',0)'

它在 IMPALA 中很有效,但在 HIVE 中却失败了。

我正在努力寻找类似于“SPLIT_PART”的东西,以便 HIVE 执行我的代码

任何指导都会有所帮助。

解决方法

在 Hive 中 split() 函数返回数组,数组元素从 0 开始编号。

在 Impala split_part(vw_cart.order_detail,':',2) 中 - 从分隔字符串中返回第二个元素,从 1 开始编号

因此,在 Hive 中将是:

regexp_extract(split(vw_cart.order_detail,':')[1],'[0-9]+',0)