我在python / pyspark中有一个数据框,其中列id
time
city
zip
等等......
现在我在此数据框中添加了一个新列name
。
现在,我必须以name
id
列的方式排列列。
我在下面做了
change_cols = ['id', 'name']
cols = ([col for col in change_cols if col in df]
+ [col for col in df if col not in change_cols])
df = df[cols]
我收到此错误
pyspark.sql.utils.AnalysisException: u"Reference 'id' is ambiguous, could be: id#609, id#1224.;"
为什么会出现此错误。我怎样才能纠正这个问题。
答案 0 :(得分:32)
您可以使用select
更改列的顺序:
df.select("id","name","time","city")
答案 1 :(得分:0)
如果要处理大量列:
df.select(sorted(df.columns))