Comment transposer/pivot de données dans la ruche?

Je sais il n'y a aucun moyen direct pour transposer des données dans la ruche. J'ai suivi cette question: Est-il possible de transposer des données dans la Ruche? , mais comme il n'y a pas de réponse définitive il y a, ne pouvait pas obtenir tout le chemin.

C'est le tableau que j'ai:

 | 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     |

Ici Proc1 peut avoir un nombre quelconque de valeurs. ID, Code & Proc1, ensemble, forment une clé unique pour cette table. Je veux Pivot/transposition de la table afin que chaque valeur unique dans Proc1 devient une nouvelle colonne, et la valeur correspondante de Proc2 est la valeur dans la colonne concernée de la ligne correspondante. En essence, je vais essayer d'obtenir quelque chose comme:

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

Dans le nouveau transformé la table, l'ID et le code sont la seule clé primaire. Depuis le billet je l'ai mentionné ci-dessus, j'ai pu obtenir cette mesure à l'aide de la to_map udaf, nous. (Avertissement - ce ne peut être une étape dans la bonne direction, mais le simple fait de mentionner ici, si elle est)

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

Mais ne savez pas comment l'obtenir à partir de cette étape du pivot/transposée de la table que je veux.
Toute aide sur la façon de procéder sera grande!
Merci.

OriginalL'auteur Sunny | 2014-04-12