我正在使用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?
答案 0 :(得分:1)
您可以使用withColumnRenamed(existing, new)
方法重命名该列,然后写入镶木地板。会是这样的:
df.withColumnRenamed('Hour of day', 'Hour')