【炸裂技巧 之 posexplode】

指定下标组合取数

select
sale_id
,str_to_map(regexp_replace(concat_ws(‘,’, collect_set(concat_ws(‘:’, type_name, value_list[idx]))),‘\"’,‘’)) as profile_json
from
(
select
sale_id
,split(substr(get_json_object(profile_json, ‘ . s e c C a t e g o r y T e m p l a t e . t y p e N a m e ′ ) , 2 , l e n g t h ( g e t j s o n o b j e c t ( p r o f i l e j s o n , ′ .secCategoryTemplate.typeName'), 2, length(get_json_object(profile_json, ' .secCategoryTemplate.typeName),2,length(getjsonobject(profilejson,.secCategoryTemplate.typeName’)) - 2), ‘,’) as type_name_list
,split(substr(get_json_object(profile_json, ‘ . s e c C a t e g o r y T e m p l a t e . v a l u e ′ ) , 2 , l e n g t h ( g e t j s o n o b j e c t ( p r o f i l e j s o n , ′ .secCategoryTemplate.value'), 2, length(get_json_object(profile_json, ' .secCategoryTemplate.value),2,length(getjsonobject(profilejson,.secCategoryTemplate.value’)) - 2), ‘,’) as value_list
from tmp.tmp_001
where dt >= date_sub(‘ d t ′ , 30 ) a n d d t < = ′ {dt}',30) and dt <= ' dt,30)anddt<={dt}’
) tmp
lateral view posexplode(type_name_list) t1 as idx, type_name
group by sale_id

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值