Можно ли транспонировать данные в 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 |
Я искал другие связанные вопросы, и все они упоминают об использовании боковых видов и взрыва, но есть ли способ выборочно выбирать столбцы для бокового (ли) просмотра (просмотра) и взрыва (расширения)?
Кроме того, каким может быть грубый процесс для достижения того, что я хотел бы сделать? Пожалуйста, помогите мне. Спасибо!
Изменить: я читал эту ссылку: https://cwiki.apache.org/Hive/languagemanual-lateralview.html, и он показывает мне половину того, чего я хочу достичь. Первый пример в ссылке в основном то, что мне нужно, за исключением того, что я не хочу, чтобы строки повторялись, и хочу, чтобы они были именами столбцов. Любые идеи о том, как привести данные к такой форме, что если я сделаю explode
, это приведет к желаемому результату или наоборот, т.е. explode
сначала приведет к другому шагу, который затем приведет к моей желаемой выходной таблице . Еще раз спасибо!