重命名或给Python Spark Dataframe列名称起别名

时间:2019-07-20 09:12:55

标签: python apache-spark dataframe pyspark

我正在使用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?

1 个答案:

答案 0 :(得分:1)

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

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