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

时间:2020-08-05 21:49:05

标签: pyspark apache-spark-sql pyspark-dataframes

我正在尝试使用pyspark-sql读取csv文件,大多数列名将使用特殊字符。我想使用pyspark数据帧删除所有列名中的特殊字符。是否有任何可用的特定功能一次删除所有列名的特殊字符吗?感谢您的答复。

1 个答案:

答案 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|
#+---+---+---+---+
相关问题