我有蜂巢表格中的这好比移调蜂巢表
| ID | Code | Proc1 | Proc2 |
| i | A | B | C |
| i | 1 | 2 | 3 |
我希望我的输出是:
| i | A | 1 |
| i | B | 2 |
| i | C | 3 |
我已经阅读了很多其他文章,并找出存在没有直接的方法在蜂巢中进行转置。任何帮助,将不胜感激。
我有蜂巢表格中的这好比移调蜂巢表
| ID | Code | Proc1 | Proc2 |
| i | A | B | C |
| i | 1 | 2 | 3 |
我希望我的输出是:
| i | A | 1 |
| i | B | 2 |
| i | C | 3 |
我已经阅读了很多其他文章,并找出存在没有直接的方法在蜂巢中进行转置。任何帮助,将不胜感激。
这是一种方法来做你正在请求。但是,我必须说,对于任何合理数量的行来说,写这些都是不切实际的。
查询:
SELECT id
, new[0] AS col0
, new[1] AS col1
FROM (
SELECT id
, COLLECT_LIST(code) AS a
, COLLECT_LIST(proc1) AS b
, COLLECT_LIST(proc2) AS c
FROM database.table
GROUP BY id) x
LATERAL VIEW EXPLODE(ARRAY(a, b, c)) exptbl AS new
输出:
id col0 col1
i A 1
i B 2
i C 3
我想,作为我的答案的替代方案,您可以使用函数来生成此代码,以测试更好的性能。请注意,这也将超越仅使用HQL。 (使用普通的HQL,你将被迫在这个答案中显示硬编码) –
@ gobrewers14 - 谢谢你,这正是我所寻找的。 – salmanbw
有没有办法做到这一点在蜂巢没有硬编码。假设你的蜂巢数据库是一个典型的生态系统,我建议以下步骤:
的[简单的方法来转在SQL列和行?(可能的复制http://stackoverflow.com/questions/13372276/simple-way -to-转柱和-rows-in-sql) – Ollaw
[有没有办法在Hive中转置数据](http://stackoverflow.com/questions/37436710/is-there-a-way-to-transpose-data-in -hive) – gobrewers14
@ gobrewers14 - 这不是我要找的。不过,我可以尝试使用地图功能,看看我是否可以达到任何解决方案。 – salmanbw