我有一个字段,其中记录了如下的购物车信息。数组的长度不固定。
[["SKU_001","Product Name A","Category1",$10.5,1],
["SKU002","Product Name B","Category1",$20,3]]
我的gola是将其反规范化为平坦的行,如下所示:
SKU | Product Name | Category | Unit Price | Product Quantity
SKU001 | Product Name A | Category1 | $10.5 | 1
SKU002 | Product Name B | Category2 | $20 | 3
是否可以在不编写UDF的情况下实现转换?
最佳答案
您可以使用“侧面 View explode(...)”语法将子数组获取为行,然后选择子数组的各个元素以将它们获取为列。
select
cart[0] as SKU,
cart[1] as product_name,
cart[2] as category,
cart[3] as unit_price,
cart[4] as product_quantity
from my_table lateral view explode(my_nested_array_field) t as cart
关于hadoop - Hive查询嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938232/