Как заменить все нулевые значения фрейма данных в Pyspark

У меня есть фрейм данных в pyspark с более чем 300 столбцами. В этих столбцах есть несколько столбцов со значениями null.

например:

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

когда я хочу сделать сумму column_1, я получаю в результате значение Null вместо 724.

теперь я хочу заменить null во всех столбцах фрейма данных пустым пространством. Поэтому, когда я пытаюсь сделать сумму этих столбцов, я не получаю нулевое значение, но я получу числовое значение.

Как может мы достигаем этого в pyspark

2 ответов


можно использовать df.na.fill для замены нулей нулями, например:

>>> 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|
+---+

вы можете использовать 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|
+---+