Existe-t-il un moyen d'aplatir un objet struct dans PySpark ?

root
 |-- key: struct (nullable = true)
 |    |-- id: string (nullable = true)
 |    |-- type: string (nullable = true)
 |    |-- date: string (nullable = true)

J'ai trouvé ce post SO : Comment aplatir une structure dans un Spark dataframe ? pour être similaire, sauf que je ne savais pas comment traduire la ou les réponses de Spark à PySpark.

SOLUTION : Pour les autres, voici la solution complète de code que je cherchais :

df.select(col("key.id"), 
          col("key.type"),
          col("key.date"))
0
user2205916 22 janv. 2020 à 06:10

1 réponse

Meilleure réponse

La syntaxe est la même pour Spark en Scala, Java et Python. Pour accéder aux champs de struct, vous devez utiliser l'opérateur point (.) comme ci-dessous.

df.select(col("key.id"))

La ligne de code ci-dessus ne récupérera que l'identifiant.

1
Manoj Kumar Dhakad 22 janv. 2020 à 05:30