我有蜂巢表格中的這好比移調蜂巢表
| 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