pyspark - 使用 pyspark 数据框从列名中删除特殊字符
问题描述
我正在尝试使用 pyspark-sql 读取 csv 文件,大多数列名都有特殊字符。我想使用 pyspark 数据框删除所有列名中的特殊字符。是否有任何特定功能可用于删除特殊字符一次为所有列名?感谢您的回复。
解决方案
尝试使用regular expressi
on replace 替换所有特殊字符,然后使用.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|
#+---+---+---+---+
推荐阅读
- hyperledger-fabric - 超级账本的 fabcar.go 链码不接受更改和修改,始终运行以前的链码
- c# - 如何包含正确小数点的货币?
- sql-server - 在嵌套路径中返回多个值的 XML 查询
- azure - ADF 的 Azure Function 组件不适用于自托管集成运行时
- android - 未能解决:Lbutterknife/ButterKnife$Action;安卓X?
- c - 使用 __SYSCALL_DEFINEx 的单个宏定义中的多个值
- javascript - 如何避免一个数组(ClickeditemType)中的元素在javascript中被推送到另一个数组(selectedclassnamesFirstLevel)
- r - R中唯一子列的记录数
- http - 如何将 Ruby on Rails 网站从 http 1 更新为 http 2
- python - 为什么当线程数比硬件可能的线程数增加时性能会提高?