2017-10-13 17 views
0

J'ai quelques données de la façon suivante:transformer les données avec plusieurs champs de porc

(102,(727,103,895)) 

(102,(105,255)) 

quelqu'un sait comment transformer ces données à la manière suivante chez le porc?

(102,727) 

(102,103) 

(102,895) 

(102,105) 

(102,255) 
+1

Pouvez-vous partager l'extrait de code que vous avez? Comment lisez-vous les données? Quel problème voyez-vous? Vous pouvez penser à lire le second élément sous la forme d'un tuple d'ints et ensuite utiliser FLATTEN pour obtenir les données désirées. –

Répondre

0

Utilisez FLATTEN(). En supposant que vous avez relation B avec deux champs

C = foreach B generate B.$0,FLATTEN(B.$1); 
DUMP C; 

enter image description here

+0

obtenir ce résultat: (102 727 103 895), (102,105,255) – Summer

+0

Les données brutes sont énormes. Supposons qu'après quelques étapes, je jette B et ai (102, (727,103,895)), (102, (105,255)), puis j'utilise le script que vous fournissez, finalement obtenu (102,727,103,895), (102,105,255) ..... – Summer

+0

@ Été Retirez le TOBAG et utilisez simplement FLATTEN.J'ai modifié la réponse. –