J'ai l'exemple de trame de données suivant.Ajout d'une nouvelle colonne après la fonction UDF à une trame PySpark existante
+-------+--------+--------+--------+
| data1 | data 2 | data 3 | data 4 |
+-------+--------+--------+--------+
|1 |abc |abd |3 |
+-------+--------+--------+--------+
|3 |abd |abd |3 |
+-------+--------+--------+--------+
|2 |abe |abg |2 |
Je demande une UDF qui convertit des données 4 pour True
si 3 et si False
2, par exemple.
J'utilise le code suivant pour générer un dataframe indépendant avec les anciennes et les nouvelles valeurs dans une colonne:
UDF = udf(converterFnc,StringType())
tempDF = mydata.select('data 4', UDF('data 4').alias('newdata 4'))
et obtenir la dataframe suivante:
+--------+-----------+
| data 4 | newdata 4 |
+--------+-----------+
| 3 | True |
+--------+-----------+
| 2 | False |
Je suis en train de figure comment fusionner ceci à la trame de données originale, mais je trouve que je reçois un problème étrange en utilisant join
dans lequel toutes les valeurs jointes sont juste la première valeur pour l'ensemble de l'image.
Ma sortie souhaitée:
+-------+--------+--------+--------+-----------+
| data1 | data 2 | data 3 | data 4 | newdata 4 |
+-------+--------+--------+--------+-----------+
|1 |abc |abd |3 | True |
+-------+--------+--------+--------+-----------+
|3 |abd |abd |3 | True |
+-------+--------+--------+--------+-----------+
|2 |abe |abg |2 | False |
Merci!
Merci! Ma méthode était un peu plus compliquée qu'un simple classificateur 'True/False' mais la méthode' withColumn' m'a permis de le faire fonctionner! – Kam
Cool. Content que ça aide! – Psidom