python - 重命名 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?
解决方案
您可以使用该方法重命名列withColumnRenamed(existing, new)
,然后写入 parquet。它会是这样的:
df.withColumnRenamed('Hour of day', 'Hour')
推荐阅读
- reactjs - 谁能解释这种在javascript中一次包含两个类的方式
- mysql - 如何在 SQL 中链接来自多个表的记录?
- javascript - JQuery 在评论中点击更改文本
- c# - 在c#中从查找服务当前年份和上一年获取并绑定
- matlab - 通过调用 Matlab 在 Fortran 循环中创建实时绘图
- python - 从开始和结束坐标识别不同的多边形
- proxy - 错误:连接到 localhost 时,Econnrefured
- fwrite - 重写文件读取的最后一部分
- javascript - Reactjs回调在返回错误之前获取错误
- azure - Azure CDN 字体加载问题