Comment conditionnellement de remplacer la valeur dans une colonne basée sur l'évaluation de l'expression basée sur une autre colonne dans Pyspark?
import numpy as np
df = spark.createDataFrame(
[(1, 1, None), (1, 2, float(5)), (1, 3, np.nan), (1, 4, None), (0, 5, float(10)), (1, 6, float('nan')), (0, 6, float('nan'))],
('session', "timestamp1", "id2"))
+-------+----------+----+
|session|timestamp1| id2|
+-------+----------+----+
| 1| 1|null|
| 1| 2| 5.0|
| 1| 3| NaN|
| 1| 4|null|
| 0| 5|10.0|
| 1| 6| NaN|
| 0| 6| NaN|
+-------+----------+----+
Comment remplacer la valeur de timestamp1 colonne avec la valeur 999 lors de la session==0?
Sortie attendue
+-------+----------+----+
|session|timestamp1| id2|
+-------+----------+----+
| 1| 1|null|
| 1| 2| 5.0|
| 1| 3| NaN|
| 1| 4|null|
| 0| 999|10.0|
| 1| 6| NaN|
| 0| 999| NaN|
+-------+----------+----+
Est-il possible de le faire en utilisant replace() dans PySpark?
OriginalL'auteur GeorgeOfTheRF | 2017-06-27
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en utilisant la
when
(avecotherwise
) fonction:OriginalL'auteur Assaf Mendelson