我在一些列名中使用了带有空格的 Dataframe ,必须用下划线替换。
我知道可以在spkSQL中使用withColumnRenamed()
重命名单个列,但要重命名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.
现在,如何用new_names
替换df的头部
7条答案
按热度按时间0aydgbwb1#
作为最佳实践,您应该更喜欢表达式和不变性。您应该尽量使用
val
和而不是var
。因此,最好使用
foldLeft
运算符,在本例中:dly7yett2#
你可以用某种方法把它封装起来,这样它就不会有太多的污染。
nwlls2ji3#
在Python中,这可以通过以下代码来完成:
yquaqz184#
您可以在Python中执行完全相同的操作:
ie3xauqp5#
在Scala中,这里有另一种实现相同的方法-
希望这能有所帮助!!
pw9qyyiw6#
我还想添加此解决方案
w8rqjzmb7#
这是我们正在使用的实用程序。