替换spark Dataframe中所有列名称中的空格

2023-11-27

我的 Spark 数据框的某些列名称中带有空格,必须用下划线替换。

我知道可以使用以下命令重命名单个列withColumnRenamed()在sparkSQL中,但要重命名'n'个列,这个函数必须链接'n'次(据我所知)。

为了自动化此操作,我尝试过:

val old_names = df.columns()        // contains array of old column names

val new_names = old_names.map { x => 
   if(x.contains(" ") == true) 
      x.replaceAll("\\s","_") 
   else x 
}                    // array of new column names with removed whitespace.

现在,如何将 df 的标头替换为new_names


作为最佳实践,您应该更喜欢表达式和不变性。 你应该使用val and not var越多越好。

因此,最好使用foldLeft运算符,在本例中:

val newDf = df.columns
              .foldLeft(df)((curr, n) => curr.withColumnRenamed(n, n.replaceAll("\\s", "_")))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换spark Dataframe中所有列名称中的空格 的相关文章

随机推荐