pyspark / dataframe: заменить ноль на пустое место

python dataframe lambda

3570 просмотра

1 ответ

6078 Репутация автора

У меня есть следующая функция udf в фрейме pyspark. Код работает нормально, за исключением случаев, когда myFun1('oldColumn')null, я хочу, чтобы вывод был пустой строкой, а не null.

myFun1 = udf(lambda x: myModule.myFunction1(x), StringType())
myDF = myDF.withColumn('newColumn', myFun1('oldColumn'))

Возможно ли сделать это на месте вместо создания другой функции udf? Спасибо!

Автор: Edamame Источник Размещён: 19.07.2016 04:30

Ответы (1)


4 плюса

122 Репутация автора

Использование df.fillna()или df.na.fill()замена нулевых значений пустой строкой работало для меня.

Вы можете сделать замены по столбцу, указав в качестве параметра столбец и значение, которое вы хотите заменить пустыми:

myDF = myDF.na.fill({'oldColumn': ''})

Документы Pyspark имеют пример :

>>> df4.na.fill({'age': 50, 'name': 'unknown'}).show()
+---+------+-------+
|age|height|   name|
+---+------+-------+
| 10|    80|  Alice|
|  5|  null|    Bob|
| 50|  null|    Tom|
| 50|  null|unknown|
+---+------+-------+
Автор: scmz Размещён: 05.10.2017 04:33
Вопросы из категории :
32x32