使用 pyspark 数据框从列名中删除特殊字符

Remove special characters from column names using pyspark dataframe

我正在尝试使用 pyspark-sql 读取 csv 文件,大多数列名称都有特殊字符 characters.I 想使用 pyspark [删除所有列名称中的特殊字符 dataframe.Is 是否有任何特定功能可用于一次删除所有列名的特殊字符?感谢您的回复。

尝试使用 regular expression 替换所有特殊字符,然后使用 .toDF()

Example:

df=spark.createDataFrame([('a','b','v','d')],['._a','/b','c ','d('])
import re
cols=[re.sub("(_|\.|\(|\/)","",i) for i in df.columns]
df.toDF(*cols).show()
#+---+---+---+---+
#|  a|  b| c |  d|
#+---+---+---+---+
#|  a|  b|  v|  d|
#+---+---+---+---+

Using .withColumnRenamed():

for i,j in zip(df.columns,cols):
    df=df.withColumnRenamed(i,j)

df.show()
#+---+---+---+---+
#|  a|  b| c |  d|
#+---+---+---+---+
#|  a|  b|  v|  d|
#+---+---+---+---+