Mi versión de Python es 2.7 y estoy usando este código:

 df1.select(*[x for x in df1.columns if x!='fields'], F.col("fields.*")).show()

Pero tengo este error:

  File "<ipython-input-16-3d81a8b987ed>", line 1
    df1.select(*[x for x in df1.columns if x!='fields'], F.col("fields.*")).show()
SyntaxError: only named arguments may follow *expression

¿Cómo puedo modificar mi código para que funcione en Python 2? Gracias.

-1
LLL 21 jul. 2020 a las 19:09

2 respuestas

La mejor respuesta

Intente agregar su expresión de selección para comprender la lista.

expr = [x for x in df1.columns if x!='fields']+[F.col("fields.*")]
df1.select(*expr).show()
2
Raghu 21 jul. 2020 a las 16:16

Intente pasando col en sus dos expresiones en .select

df1.select(*[F.col(x) for x in df1.columns if x!='fields'], F.col("fields.*")).show()

#or without col in .select

df.select("fields.*",*[x for x in df.columns if x !='fields']).show()
2
Shu 21 jul. 2020 a las 16:28