Come trasporre / ruotare i dati nell’hive?

So che non esiste un modo diretto per trasporre i dati nell’hive. Ho seguito questa domanda: esiste un modo per trasporre i dati in Hive? , ma poiché non c’è una risposta definitiva, non è ansible arrivare fino in fondo.

Questo è il tavolo che ho:

| ID | Code | Proc1 | Proc2 | | 1 | A | p | e | | 2 | B | q | f | | 3 | B | p | f | | 3 | B | q | h | | 3 | B | r | j | | 3 | C | t | k | 

Qui Proc1 può avere qualsiasi numero di valori. ID, Codice e Proc1 formano insieme una chiave univoca per questa tabella. Voglio ruotare / trasporre questa tabella in modo che ogni valore univoco in Proc1 diventi una nuova colonna e il valore corrispondente da Proc2 sia il valore in quella colonna per la riga corrispondente. In sostanza, sto cercando di ottenere qualcosa come:

  | ID | Code | p | q | r | t | | 1 | A | e | | | | | 2 | B | | f | | | | 3 | B | f | h | j | | | 3 | C | | | | k | 

Nella nuova tabella trasformata, ID e codice sono l’unica chiave primaria. Dal biglietto che ho menzionato sopra, ho potuto arrivare fino a questo utilizzando to_map UDAF. (Disclaimer – questo potrebbe non essere un passo nella giusta direzione, ma solo menzionare qui, se lo è)

  | ID | Code | Map_Aggregation | | 1 | A | {p:e} | | 2 | B | {q:f} | | 3 | B | {p:f, q:h, r:j } | | 3 | C | {t:k} | 

Ma non so come passare da questo passaggio al tavolo pivot / trasposto che voglio. Qualsiasi aiuto su come procedere sarà fantastico! Grazie.