我在hive A中有一张表,就像
| ID | Code | Proc1 | Proc2 |
| i | A | B | C |
| i | 1 | 2 | 3 |
我希望我的输出为:
| i | A | 1 |
| i | B | 2 |
| i | C | 3 |
我已经阅读了很多其他文章,并发现没有直接的方法在蜂巢中进行转置。任何帮助将不胜感激。
答案 0 :(得分:1)
这是一种执行您要求的方式。但我必须说,如果有任何合理数量的行,这对写作来说是非常不切实际的。
<强>查询强>:
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
答案 1 :(得分:0)
没有硬编码就无法在Hive中执行此操作。假设您的hive数据库位于典型的生态系统中,我建议您执行以下步骤: