【发布时间】:2020-05-10 00:07:48
【问题描述】:
我有一个 spark 数据框,只想删除最后一列。
我试过了
df.drop(df.columns.last)`
但出现错误AttributeError: 'list' object has no attribute 'last'。
我也试过了:
df = df.drop(df.columns[-1])
但这会删除所有与上一个名称相同的列。
使用 Spark 2.4
【问题讨论】:
-
最好是按名称删除。
withColumn可以改变列的顺序 -
@Joe 我会推荐以下内容:1) 将列名保存到列表中:
colnames = df.columns2) 重命名列以使名称唯一:df = df.toDF(*range(colnames))3) 删除最后一列 @ 987654327@ 4) 将列重命名回原来的名称:df = df.toDF(*cols[:-1])。如果问题重新打开,请联系我,我会发布答案。 -
@pault 我重新打开了问题
标签: dataframe apache-spark pyspark