Tengo un DataFrame con esta estructura:

root
 |-- features: struct (nullable = true)
 |    |-- value: double (nullable = true)

Y quiero convertir el valor con el tipo doble al tipo "valores con matriz". ¿Cómo puedo hacer eso?

-1
Mostafa Shafi' 22 ene. 2021 a las 14:33

1 respuesta

La mejor respuesta

Puede especificar la conversión explícitamente usando struct y array:

import pyspark.sql.functions as F

df.printSchema()
#root
# |-- features: struct (nullable = false)
# |    |-- value: double (nullable = false)

df2 = df.withColumn(
    'features',
    F.struct(
        F.array(F.col('features')['value']).alias('values')
    )
)

df2.printSchema()
#root
# |-- features: struct (nullable = false)
# |    |-- values: array (nullable = false)
# |    |    |-- element: double (containsNull = false)
0
mck 22 ene. 2021 a las 11:58