Пропускать, обновлять и возвращать несколько столбцов из Dataframe в PySpark - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь передать, обновить и вернуть несколько столбцов из фрейма данных и создать новый фрейм данных, но безуспешно. Я попробовал пару вещей, но ни одна из них не сработала.

Например: Я передаю в UDF 2 столбца request_status и err_msg и, основываясь на каком-то условии, обновлю оба столбца и верну его, и мне нужны обновленные значения для отражения в новом кадре данных вместе с другими столбцами.

Код PySpark:

Столбцы в CSV: имя, возраст, статус заявки, err_msg

def my_udf (data, message):
  if data = 'ABC':
     data = 'XYZ'
     message = 'processed'
  else:
     data = '123'
     message = 'not processed'

return data , message


my_udf_func = udf(my_udf)


df = sql_context.read.format('csv').option('inferschema','false').option('demiliter',',').load('input.txt')

new_df = df.withColumn([claim_status,err_msg] , my_udf_func(df[claim_status] , df[err_msg]))

Выше приведен пример примера, но я пробовал разные способы получить выходные данные, но код не работает, он всегда завершается тем или иным сообщением об ошибке.

Пожалуйста, помогите решить проблему.

...