Python / pyspark数据框重新排列列

时间:2017-03-20 19:16:50

标签: python pyspark spark-dataframe

我在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.;"

为什么会出现此错误。我怎样才能纠正这个问题。

2 个答案:

答案 0 :(得分:32)

您可以使用select更改列的顺序:

df.select("id","name","time","city")

答案 1 :(得分:0)

如果要处理大量列:

df.select(sorted(df.columns))