У меня есть датафрейм с 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 является Кафка, поэтому трафик будет быстрым.