Используйте foldLeft
для всех столбцов в кадре данных, таким образом, вы можете использовать regexp_replace
для каждого отдельного столбца и возвращать окончательный кадр данных.Используя примерный фрейм данных в вопросе (называемый df
ниже), чтобы удалить все обратные косые черты :
val df2 = df.columns.foldLeft(df)((df, c) => df.withColumn(c, regexp_replace(col(c), "\\\\", "")))
Вы также можете экранировать все обратные косые черты со следующими:
val df2 = df.columns.foldLeft(df)((df, c) => df.withColumn(c, regexp_replace(col(c), "\\\\", "\\\\\\\\")))
Если не все столбцы должны использоваться, создайте отдельную переменную, содержащую используемые столбцы.Чтобы использовать все столбцы, кроме одного (столбец col
ниже), используйте:
val cols = df.columns diff List("col")
cols.foldLeft ...