Comment supprimer des valeurs en double d'un RDD [PYSPARK]
J'ai le tableau suivant comme CA:
Key Value
1 y
1 y
1 y
1 n
1 n
2 y
2 n
2 n
Je veux supprimer tous les doublons d' Value
.
Sortie doit venir comme ça:
Key Value
1 y
1 n
2 y
2 n
Tout en travaillant dans pyspark, la production devrait venir en tant que liste de paires clé-valeur comme ceci:
[(u'1',u'n'),(u'2',u'n')]
Je ne sais pas comment appliquer for
boucle ici. Dans un programme Python, il aurait été très facile.
Je me demande si il y a une fonction dans pyspark
pour la même chose.
source d'informationauteur COSTA
Vous devez vous connecter pour publier un commentaire.
J'ai peur je n'ai pas de connaissances sur pythonde sorte que toutes les références et le code que j'apporte dans cette réponse sont relatifs à java. Cependant, il ne devrait pas être très difficile de le traduire en python code.
Vous devriez jeter un oeil à la suite de page web. Il redirige vers Étincelle'page web officielle, qui fournit une liste de toutes les transformations et les actions soutenues par Étincelle.
Si je ne me trompe pas, la meilleure approche (dans votre cas) serait d'utiliser la
distinct()
transformation, qui retourne un dataset qui contient les différents éléments de la source de données (prises à partir du lien). En java, il serait quelque chose comme:De sorte que, par exemple:
Serait converti à:
Bien sûr, vous avez encore plusieurs RDD ensembles de données chaque qui une liste d'éléments distincts.
Ce problème est simple à résoudre à l'aide de la
distinct
fonctionnement de la pyspark bibliothèque de Apache Spark.Cela permettra de sortie suivants:
Si vous souhaitez supprimer tous les doublons dans une colonne particulière ou un ensemble de colonnes, j'.e faire un
distinct
sur un ensemble de colonnes, puis pyspark a la fonctiondropDuplicates
qui accepte spécifique d'un ensemble de colonnes distinctes.aka