重命名Spark Python中的数据框列

尼克·麦克德麦德

我有一个要保存为Parquet的标题的CSV文件(实际上是一个增量表)

列标题中有空格,镶木地板无法处理。如何将空格改为下划线?

这是到目前为止,我从其他SO帖子中总结出来的内容:

from pyspark.sql.functions import *

df = spark.read.option("header", True).option("delimiter","\u0001").option("inferSchema",True).csv("/mnt/landing/MyFile.TXT")

names = df.schema.names
for name in names:
    df2 = df.withColumnRenamed(name,regexp_replace(name, ' ', '_'))

当我运行它时,最后一行给出了这个错误:

TypeError:列不可迭代

考虑到镶木地板无法处理空间,我认为这将是一个普遍的要求,但是很难找到任何示例。

亚历克斯·奥特

您需要使用reduce函数来将重命名迭代地应用于数据框,因为在您的代码df2中,只有最后一列会被重命名...

代码如下(而不是for循环):

df2 = reduce(lambda data, name: data.withColumnRenamed(name, name.replace('1', '2')), 
             names, df)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在Spark Scala中重命名DataFrame的列名

来自分类Dev

基于csv重命名spark数据框的列名

来自分类Dev

重命名R中数据框中的特定列

来自分类Dev

使用重命名密钥的Spark数据倾斜重新分区

来自分类Dev

如何重命名Hadoop / Spark中的大量文件?

来自分类Dev

重命名Scala Spark Dataframe中的嵌套元素

来自分类Dev

创建函数以重命名Pandas数据框中的列

来自分类Dev

重命名数据框列表中的所有列

来自分类Dev

使用值字典重命名Pandas数据框中的列

来自分类Dev

如何重命名数据框中的列

来自分类Dev

使用pandas重命名数据框的列中的元素

来自分类Dev

使用其他数据框重命名熊猫中的列

来自分类Dev

重命名数据框中的多列

来自分类Dev

如何重命名Scala数据框中的列标题

来自分类Dev

在groupby操作期间重命名pandas数据框中的列

来自分类Dev

无法重命名数据框的列

来自分类Dev

在 python 或 Pyspark 数据框中重命名带有特殊字符的列

来自分类Dev

重命名数据框

来自分类Dev

转置数据框后重命名数据框中的列

来自分类Dev

仅重命名数据框列表中每个数据框的最后一列

来自分类Dev

使用Pandas数据框中的分类数据重命名变量

来自分类Dev

如何重命名R中不同数据框中不同列中的观测值?

来自分类Dev

Python:重命名文件

来自分类Dev

使用列本身中的文本重命名数据框列

来自分类Dev

重命名SQL中的列

来自分类Dev

重命名 esttab 中的列

来自分类常见问题

重命名数据框的中间包含数字的列

来自分类Dev

使用for循环重命名熊猫数据框列

来自分类Dev

重命名Deedle数据框的列的直接功能方法