Замена null на «» в pyspark

#python #pyspark

#python #pyspark

Вопрос:

Я хотел спросить, можно ли добавить «» (двойные кавычки) вместо null во фрейм данных с использованием pyspark

 employee_id employee_name  salary
123           abc           null
 

Вместо

 employee_id employee_name  salary
123           abc           ""
 

Я попробовал fillna({‘зарплата’: «}).
O / P, который я получаю, равен

 employee_id employee_name  salary
123           abc          
 

Не могли бы кто-нибудь, пожалуйста, помочь мне с этим?

Ответ №1:

Это нормально, что вы делаете. Он заменяет нулевые значения пустыми строками. Вам не нужны эти кавычки.

Однако, если вы хотите, чтобы двойные кавычки были частью данных, просто добавьте их следующим образом :

 df.na.fill({'salary': '""'})
 

Полный пример:

 df = spark.createDataFrame([(123, "abc", None)], "employee_id int, employee_name string, salary string")

df.show()
# ----------- ------------- ------ 
#|employee_id|employee_name|salary|
# ----------- ------------- ------ 
#|        123|          abc|  null|
# ----------- ------------- ------ 

df = df.na.fill({'salary': '""'})

df.show()
# ----------- ------------- ------ 
#|employee_id|employee_name|salary|
# ----------- ------------- ------ 
#|        123|          abc|    ""|
# ----------- ------------- ------ 
 

Комментарии:

1. Попробовал это. Но он также дает тот же O / P, что и выше

2. @Mahima Это дает ожидаемый результат. Добавлен рабочий пример в ответ. Можете ли вы показать пример, для которого он не работает?