且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何从Spark数据框中的所有列中删除反斜杠?

更新时间:2023-11-18 23:18:28

在数据框的所有列上使用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)之外的所有所有列,请使用:


If not all columns should be used, create a separate variable containing the columns to use. To use all all columns except one (column col below) use:

val cols = df.columns diff List("col")
cols.foldLeft ...