2 votes

Gérer la conversion de chaîne en tableau dans les dataframes pyspark

J'ai un fichier (csv) qui, lorsqu'il est lu dans le dataframe spark, a les valeurs suivantes pour le schéma d'impression

-- list_values: string (nullable = true)

les valeurs dans la colonne list_values sont quelque chose comme :

[[[167, 109, 80, ...]]]

Est-il possible de le convertir en tableau plutôt qu'en chaîne ?

J'ai essayé de le diviser et d'utiliser le code disponible en ligne pour des problèmes similaires :

df_1 = df.select('list_values', split(col("list_values"), ",\s*").alias("list_values"))

mais si j'exécute le code ci-dessus, le tableau que j'obtiens saute un grand nombre de valeurs dans le tableau d'origine, à savoir

La sortie du code ci-dessus est :

[, 109, 80, 69, 5...

qui est différent du tableau original, c'est-à-dire (-- 167 est manquant)

[[[167, 109, 80, ...]]] 

Comme je suis nouveau à spark, je n'ai pas beaucoup de connaissances sur la façon dont il est fait (Pour python, j'aurais pu faire ast.literal_eval mais spark n'a pas de disposition pour cela.

Je vais donc répéter la question à nouveau :

Comment puis-je convertir/transférer un tableau stocké en tant que chaîne de caractères en array c'est-à-dire

'[]' to [] conversion

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X