La comparaison des colonnes dans Pyspark
Je suis en train de travailler sur un PySpark DataFrame n colonnes. J'ai un ensemble de m colonnes (m < n) et ma tâche est de choisir la colonne avec les valeurs max.
Par exemple:
D'entrée: PySpark DataFrame contenant :
col_1 = [1,2,3], col_2 = [2,1,4], col_3 = [3,2,5]
De sortie :
col_4 = max(col1, col_2, col_3) = [3,2,5]
Il y a quelque chose de semblable dans les pandas comme expliqué dans cette question.
Est-il possible de faire cela dans PySpark ou dois-je changer de convertir mon PySpark df pour les Pandas df et ensuite effectuer les opérations?
si la question est au sujet d'obtenir la valeur maximale de chaque colonne, il semblerait que la sortie attendue devrait être [max(col_1), max(col_2), max(col_3)] = [3, 4, 5]
OriginalL'auteur Hemant | 2016-06-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez réduire des expressions SQL sur une liste de colonnes:
Étincelle 1.5+ fournit également
least
,greatest
Si vous souhaitez conserver le nom de max vous pouvez utiliser `des structures:
Et enfin, vous pouvez utiliser ci-dessus pour trouver sélectionnez "top" de la colonne:
OriginalL'auteur zero323
Vous pouvez également utiliser le pyspark intégré
moins
:OriginalL'auteur mattexx
Un autre moyen simple de le faire. Disons que la ci-dessous
df
est votre dataframeVous pouvez traiter le au-dessus de df comme ci-dessous pour obtenir le desited résultats
OriginalL'auteur Rags
Scala solution:
OriginalL'auteur Hareesh Adukkadukkam