à partir de ceci: ... Comment pourrions-nous générer ceci? p> ... et comment pourrait-on générer cette ? p> pour une seule ligne, je sais faire. Le problème est que je dois itération sur plusieurs lignes et manipuler des groupes internes à la fois. P> P>
3 Réponses :
Pour votre question, j'ai préparé le fichier suivant: Au début, j'ai utilisé le script suivant pour obtenir l'entrée si nous voulons générer le contenu suivant, P> Nous pouvons utiliser le script suivant: p > pour le contenu suivant, p> Je ne trouve pas de fonction intégrée utile. Peut-être que vous devez écrire votre baguet personnalisé. Voici les codes source BagTotuple intégré: P> P> R3 code> que vous avez décrite dans votre question : p>
Et s'il y a plus d'un champ, 1,2,3 1,3,4 1,4,5 2,5,6 2,6,7 2,7,8 et nous voulons la production comme (1, 2, 3,3,4,4,5) (2, 5,6, 6,7, 7,8)
Il n'y a pas de moyen intégré de convertir un sac en tuple. En effet, les sacs sont des ensembles de tuples non ordonnés EM>, de sorte que le cochon ne sait pas quel ordre que les tuples devraient être réglés lorsqu'il est converti en tuple. Cela signifie que vous devrez écrire un UDF pour le faire. Je ne sais pas comment vous créez le Note: strong> Vous ne devriez probablement rien transformer en tuple, à moins que vous ne sachiez exactement Combien de champs il y a. p> myudfs.py strong> p> myscript.pig strong> p> (1, 2, 3, 4) code> tuple, mais c'est un autre Bon candidat pour un UDF, même si vous pouviez créer ce schéma avec juste le BagTotuple UDF. P>
Pour obtenir: Vous pouvez le faire: p>
Solution incroyable! Pourquoi ne fonctionne-t-il pas. foreach R3 génère des travaux de BagToTuple (B)? Cela me donne (1,4,1,3,1,2)) (2,7,2,6,2,5)), qui semble irrationnel.