更新时间:2023-11-18 23:30:52
在数据框中的所有列上使用 foldLeft
,这样你就可以在每个单独的列上使用 regexp_replace
列并返回最终的数据帧.使用问题中的示例数据框(下面称为 df
),删除所有反斜杠:
Use foldLeft
on all columns in the dataframe, in this way you can use regexp_replace
on each separate column and return the final dataframe. Using the example dataframe in the question (called df
below), to remove all backslashes:
val df2 = df.columns.foldLeft(df)((df, c) => df.withColumn(c, regexp_replace(col(c), "\\\\", "")))
您也可以使用以下内容转义所有反斜杠:
You could also escape all backslashes with the following:
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 ...