我正在将Pandas命令转换为Spark命令。我无意中想将这一行转换为Apache Spark代码:
此行将每两个空格替换为一个。
df = df.columns.str.replace(' ', ' ')
是否可以使用Spark替换所有列中的字符串?我遇到了这个问题,但它不太正确。
df = df.withColumnRenamed('--', '-')
说清楚我想要这个
//+---+----------------------+-----+
//|id |address__test |state|
//+---+----------------------+-----+
对此
//+---+----------------------+-----+
//|id |address_test |state|
//+---+----------------------+-----+
2条答案
按热度按时间b1zrtrql1#
您可以在所有数据行上套用
replace
方法,方法是逐一查看数据行,然后选取,如下所示:侧边标注:调用
withColumnRenamed
会使Spark为每个不同的调用创建一个Projection,而select
只创建一个Projection,因此对于大量的列,select
会快得多。n1bvdmb62#
我有个建议。
我们获取所有目标列:
然后我们使用for循环逐个编辑它们:
这能解决您的问题吗?