web-dev-qa-db-fra.com

Comment remplacer toutes les valeurs NULL d'un cadre de données dans Pyspark

J'ai un cadre de données dans pyspark avec plus de 300 colonnes. Dans ces colonnes, certaines colonnes ont la valeur null.

Par exemple:

Column_1 column_2
null     null
null     null
234      null
125      124
365      187
and so on

Lorsque je veux faire une somme de column_1, je reçois un résultat Null, au lieu de 724.

Maintenant, je veux remplacer le null dans toutes les colonnes du cadre de données par un espace vide. Ainsi, lorsque j'essaie de faire la somme de ces colonnes, je n'obtiens pas une valeur nulle, mais une valeur numérique.

Comment pouvons-nous atteindre cela dans pyspark

26
user7543621

Vous pouvez utiliser df.na.fill pour remplacer les valeurs nulles par des zéros, par exemple:

>>> df = spark.createDataFrame([(1,), (2,), (3,), (None,)], ['col'])
>>> df.show()
+----+
| col|
+----+
|   1|
|   2|
|   3|
|null|
+----+

>>> df.na.fill(0).show()
+---+
|col|
+---+
|  1|
|  2|
|  3|
|  0|
+---+
43
Mariusz

Vous pouvez utiliser fillna () func.

>>> df = spark.createDataFrame([(1,), (2,), (3,), (None,)], ['col'])
>>> df.show()
+----+
| col|
+----+
|   1|
|   2|
|   3|
|null|
+----+

>>> df = df.fillna({'col':'4'})
>>> df.show()

or df.fillna({'col':'4'}).show()

+---+
|col|
+---+
|  1|
|  2|
|  3|
|  4|
+---+
29
Dugini Vijay