Обновите несколько значений столбца в кадре данных безоговорочно с различными переменными - PullRequest
1 голос
/ 28 сентября 2019

У меня есть датафрейм с 10 столбцами.Я выбрал 4 столбца из этих 10 и очистил их значения (вызвав некоторый внешний API и используя его ответ).Я хотел бы создать новый фрейм данных (так как старый не может быть обновлен) и обновить эти 4 столбца с его очищенным значением (как возвращено API) и оставить остальные 6 как есть.

Пробовал исследовать .na.replace и .withColumn, но все они работают при некоторых условиях для столбцов.

val newdf = df.withColumn("col1", when(col("col1") === "XYZ", cleanedcol1)
      .otherwise(col("col1")));

И

val newdf = df.na.replace("col1", Map("col1" -> cleanedcol1))

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

Какой оптимальный подход для достижения этой цели?Источником df является Кафка, поэтому трафик будет быстрым.

1 Ответ

0 голосов
/ 28 сентября 2019

Вы можете иметь безусловное изменение с помощью withCoulumn, просто напишите

val newdf = df.withColumn("col1", newColumnValue)

Где newColumnValue - это новое значение, которое вы хотите установить для столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...