Hive将一行记录拆分成多行

时间:2022-09-09 10:25:21

业务背景

Hive表test_user_browse记录了用户浏览过的商品,该表的数据如下:

username product
John product_a,product_b,product_c,product_d
Tom product_e,product_f

现在,想要将product字段拆分为多行。

实现方式

现在借助lateral view 和explode()来完成。

select 
username,
browse_product
from pms.test_user_browse
lateral view explode(split(product, ',')) myTable as browse_product;

执行结果如下:

username browse_product
John product_a
John product_b
John product_c
John product_d
Tom product_e
Tom product_f

lateral view的介绍可以参见lateral view