【发布时间】:2013-09-08 14:51:02
【问题描述】:
Hive 中的数据可以转置吗?如,行变成列,列是行?如果没有直接的功能,有没有办法通过几个步骤来完成?
我有一张这样的桌子:
| ID | Names | Proc1 | Proc2 | Proc3 |
| 1 | A1 | x | b | f |
| 2 | B1 | y | c | g |
| 3 | C1 | z | d | h |
| 4 | D1 | a | e | i |
我希望它是这样的:
| A1 | B1 | C1 | D1 |
| x | y | z | a |
| b | c | d | e |
| f | g | h | i |
我一直在查找其他相关问题,他们都提到使用横向视图和分解,但是有没有办法选择性地选择横向(ly)视图(ing)和分解(ing)的列?
另外,实现我想做的事情的粗略过程可能是什么?请帮帮我。谢谢!
编辑:我一直在阅读此链接:https://cwiki.apache.org/Hive/languagemanual-lateralview.html,它向我展示了我想要实现的一半。链接中的第一个示例基本上是我想要的,除了我不希望行重复并希望它们作为列名。关于如何将数据转换为表单的任何想法,如果我执行explode,它将产生我想要的输出,或者以另一种方式,即explode 首先导致另一个步骤,然后导致我想要的输出表。再次感谢!
【问题讨论】: