pyspark中列名的字符串操作

Posted

技术标签:

【中文标题】pyspark中列名的字符串操作【英文标题】:string manipulation for column names in pyspark 【发布时间】:2017-06-03 15:26:21 【问题描述】:

这篇文章很好地概述了如何更改列名。 How to change dataframe column names in pyspark?

尽管如此,我需要更多/稍微调整一下我无法做到的事情。任何人都可以帮助从所有列名中删除空格吗?它需要例如加入命令和系统方法减少了处理 30 列的工作量。我想正则表达式和 UDF 的组合效果最好。

示例: 根 |-- 客户:字符串(可为空=真) |-- 分支号:字符串(可为空=真)

【问题讨论】:

【参考方案1】:

有一个真正简单的解决方案:

for name in df.schema.names:
  df = df.withColumnRenamed(name, name.replace(' ', ''))

【讨论】:

【参考方案2】:

如果您想使用与前缀(或后缀)连接的相同列名重命名多个列,这应该可以工作

df.select([f.col(c).alias(PREFIX + c) for c in columns])

【讨论】:

以上是关于pyspark中列名的字符串操作的主要内容,如果未能解决你的问题,请参考以下文章

PySpark Sql 列名中包含破折号/连字符

PySpark 在创建包含现有列名的新列时读取多个文件

Pyspark 中的条件字符串操作

在 python 或 Pyspark 数据框中使用特殊字符重命名列

如何在 Pyspark 的动态列列表中转义列名

MySQL操作——增删改