我正在尝试使用pyspark-sql读取csv文件,大多数列名将使用特殊字符。我想使用pyspark数据帧删除所有列名中的特殊字符。是否有任何可用的特定功能一次删除所有列名的特殊字符吗?感谢您的答复。
答案 0 :(得分:1)
尝试使用 regular expressi
上的替换所有特殊字符,然后使用 .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|
#+---+---+---+---+