Pyspark Dataframe выделяет все столбцы с псевдонимами в нескольких столбцах - PullRequest
0 голосов
/ 25 августа 2018

У меня есть фрейм данных, в котором много столбцов (более 50 столбцов), и я хочу выбрать все столбцы в том виде, в котором они имеют несколько имен столбцов, переименованных, следуя приведенному ниже порядку.Я попробовал следующее,

cols = list(set(df.columns) - {'id','starttime','endtime'})
df.select(col("id").alias("eventid"),col("starttime").alias("eventstarttime"),col("endtime").alias("eventendtime"),*cols,lit(proceessing_time).alias("processingtime"))

и получил ошибку, SyntaxError: only named arguments may follow *expression

Кроме того, вместо * cols я попытался передать список типа столбца

df.select(col("id").alias("eventid"),col("starttime").alias("eventstarttime"),col("endtime").alias("eventendtime"),([col(x) for x in cols]),lit(proceessing_time).alias("processingtime"))

, которая выдает следующую ошибку:

`TypeError: 'Column' object is not callable`

Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 25 августа 2018

Мы могли бы добавить столбцы вместе и выбрать из df,

df.select([col("id").alias("eventid"),col("starttime").alias("eventstarttime"),col("endtime").alias("eventendtime")]+cols+[lit(proceessing_time).alias("processingtime")])
...