首页 > 解决方案 > 重命名 Python Spark 数据框列名称或为其赋予别名

问题描述

我正在使用 PySpark 2.4.3,并且我有一个希望写入 Parquet 的数据框,但列名有空格,例如Hour of day.

df = spark.read.csv("file.csv", header=True)
df.write.parquet('input-parquet/')

我目前收到此错误:

An error occurred while calling o425.parquet.
: org.apache.spark.sql.AnalysisException: Attribute name "Hour of day" contains invalid character(s) among " ,;{}()\n\t=". Please use alias to rename it.;

如何重命名列或给它们别名以便能够写入 Parquet?

标签: pythonapache-sparkdataframepyspark

解决方案


您可以使用该方法重命名列withColumnRenamed(existing, new),然后写入 parquet。它会是这样的:

df.withColumnRenamed('Hour of day', 'Hour')

推荐阅读