在Hive中将项目数组转换为列

5

是否可以在一步中将数组投影到Hive中的单独列中?

我有这个查询

select split(activity_data,":") as ad from log_table 

这里的“column ad”包含了10个不同的字段,我希望将它们投影到10列中。

2个回答

5
是的,这是可能的。我知道有两种方法可以实现:
  1. 使用下标来访问数组元素:

    从 mpod_audit_log 中选择 split(activity_data,":")[0] 作为 col1, split(activity_data,":")[1] 作为 col2 ...

  2. 在这个帖子中解释过。 在Hive中拆分结构数组


对于简单的情况,这个方法可以工作,但如果我们不知道会有多少列存在,我不确定如何使用它。 - WestCoastProjects

3
我是这样做的:通过直接使用数组索引在 Hive 中创建单独的列:
示例 table 的列 datatype:tbl_name(eid bigint, array<double> as spendings)
select eid, spendings[0] as spendings_1, spendings[1] as spendings_2...
from tbl_name;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接