hadoop - Hive查询嵌套数组

标签 hadoop hive etl

我有一个字段,其中记录了如下的购物车信息。数组的长度不固定。

[["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/

相关文章:

java - 如何在 Debug模式下运行配置单元

hadoop - 如何在 oozie 工作流的决策中使用配置单元查询输出

linux - 在 Red Hat Linux 中打开 8021 端口

google-cloud-platform - 云数据融合与 Dataproc

sql - SSIS Oracle 显示数据但导入 NULL

etl - 有效使用 Informatica 所需的语言知识是什么?

hadoop - Spring Yarn @OnContainerStart - 如何调用 Mapper?

hadoop - 创建oozie数据库架构时出错

sql - Hive 中 SQL Server UPDATE 命令的最佳等价物

apache-spark - 如何在spark-shell中启用对spark的Hive支持(spark 2.1.1)