ошибка замены нулевых значений в фрейме данных pyspark - PullRequest
0 голосов
/ 09 января 2020

У меня возникла проблема с заменой нулевых значений на 0 в некоторых PySpark данных.

Пусть df1 и df2 два кадра данных. После процедуры join на col1 я получаю фрейм данных df, который содержит два столбца с одинаковым именем столбца (возможно, с разными значениями), унаследованных от df1 и df2, скажем, df1.dup_col и df2.dup_col. У меня есть нулевые значения для каждого из них, я хочу заменить их на 0 в df1.dup_col.

Итак, сначала я опускаю столбцы df2.dup_col, затем я вызываю

df.fillna({"df1.dup_col":'0'})

, но я все еще получаю значения null. Поэтому я попытался

df.select("df1.dup_col").na.fill(0)

с тем же результатом. Поэтому я попытался

df = df.withColumn("df1.dup_col", when(df["df1.dup_col"].isNull(), 0).otherwise(
                                         df["df1.dup_col"]))

без лучшего результата.

Я что-то упустил?

1 Ответ

0 голосов
/ 10 января 2020

Вы должны сделать что-то вроде:

df = df.fillna("0", subset = ["dup_col"]) # This is the string 0 

df = df.fillna(0, subset = ["dup_col"]) # This is the number 0 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...