Skip to content
Tutoriels
PySpark
PySpark tolist() Function Made Easy: A Comprehensive Guide

PySpark tolist() Function Made Easy: Guide Complet

En tant que data scientist, vous êtes probablement familier avec PySpark, un outil puissant pour le traitement et l'analyse des données massives. PySpark est une bibliothèque Python pour Apache Spark, un moteur d'analyse unifié pour le traitement des données massives. En PySpark, les DataFrames sont une structure de données clé utilisée pour le traitement des données. Une tâche courante dans le traitement des données est de convertir des DataFrames PySpark en listes Python. Dans ce guide, nous expliquerons comment utiliser la fonction tolist() de PySpark pour accomplir cette tâche.

Vous souhaitez créer rapidement des visualisations de données à partir de DataFrames Pandas avec aucun code?

PyGWalker est une bibliothèque Python pour l'analyse exploratoire des données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse de données et de visualisation de données dans Jupyter Notebook, en transformant votre DataFrame pandas (et DataFrame polars) en une interface utilisateur de style Tableau pour l'exploration visuelle.

PyGWalker pour la visualisation de données (opens in a new tab)

Qu'est-ce que la fonction tolist() de PySpark ?

La fonction tolist() est une fonction SQL de PySpark utilisée pour convertir un DataFrame en une liste Python. La fonction ne prend pas d'arguments et renvoie une liste de lignes du DataFrame. Chaque ligne du DataFrame est représentée comme une liste de valeurs.

Comment utiliser la fonction tolist() de PySpark ?

L'utilisation de la fonction tolist() de PySpark est simple. Voici la syntaxe de base :

df.toPandas().values.tolist()

Dans le code ci-dessus, nous utilisons la fonction PySpark toPandas() pour convertir le DataFrame en un DataFrame Pandas. Ensuite, nous utilisons la fonction Pandas values.tolist() pour convertir le DataFrame Pandas en une liste Python.

Penchons-nous de plus près sur l'utilisation de la fonction tolist() de PySpark avec des exemples.

Exemple 1 : Conversion d'un DataFrame PySpark en une liste Python

Supposons que nous ayons le DataFrame PySpark suivant :

from pyspark.sql import SparkSession
 
# créer une SparkSession
spark = SparkSession.builder.appName('PySparkTutorial').getOrCreate()
 
# créer un DataFrame
data = [('Alice', 1), ('Bob', 2), ('Charlie', 3), ('David', 4)]
df = spark.createDataFrame(data, ['Nom', 'Âge'])
 
# afficher le DataFrame
df.show()

Sortie :

+-------+---+
|   Nom |Âge|
+-------+---+
|  Alice|  1|
|    Bob|  2|
|Charlie|  3|
|  David|  4|
+-------+---+

Pour convertir ce DataFrame en une liste Python, nous pouvons utiliser la fonction tolist() comme suit :

df.toPandas().values.tolist()

Sortie :

[['Alice', 1], ['Bob', 2], ['Charlie', 3], ['David', 4]]

Exemple 2 : Conversion d'un DataFrame PySpark avec un index en une liste Python

Dans certains cas, vous souhaiterez peut-être inclure l'index du DataFrame dans la liste Python. Voici un exemple qui vous montrera comment procéder :

from pyspark.sql.functions import row_number
from pyspark.sql.window import Window
 
# créer un DataFrame avec un index
df_index = df.withColumn("index", row_number().over(Window.orderBy("Nom")))
 
# afficher le DataFrame avec un index
df_index.show()

Sortie :

+-------+---+-----+
|   Nom |Âge|index|
+-------+---+-----+
|  Alice|  1|    1|
|    Bob|  2|    2|
|Charlie|  3|    3|
|  David|  4|    4|
+-------+---+-----+

Pour convertir ce DataFrame en une liste Python incluant l'index, nous pouvons utiliser la fonction to_dict() de Pandas, puis convertir le dictionnaire obtenu en une liste :

df_index.toPandas().to_dict('records')

Sortie :

[{'Nom': 'Alice', 'Âge': 1, 'index': 1},
 {'Nom': 'Bob', 'Âge': 2, 'index': 2},
 {'Nom': 'Charlie', 'Âge': 3, 'index': 3},
 {'Nom': 'David', 'Âge': 4, 'index': 4}]

Conclusion

Dans ce guide, nous avons appris à utiliser la fonction tolist() de PySpark pour convertir des DataFrames PySpark en listes Python. Nous avons également montré des exemples d'utilisation de cette fonction avec et sans indices de DataFrame. Nous espérons que ce guide vous a été utile pour vos tâches de traitement des données et nous vous encourageons à explorer d'autres fonctions de PySpark pour améliorer davantage vos compétences.

Références

Questions fréquemment posées

  1. Comment convertir un DataFrame en une liste en Python ?

    Pour convertir un DataFrame en une liste en Python, vous pouvez utiliser la méthode values.tolist(). Cette méthode renvoie une liste imbriquée où chaque liste interne représente une ligne du DataFrame. La liste obtenue peut être utilisée pour des traitements ou analyses ultérieures.

  2. Puis-je convertir une colonne spécifique d'un DataFrame en liste ?

    Oui, vous pouvez convertir une colonne spécifique d'un DataFrame en une liste en Python. Utilisez l'opérateur d'indexation [] pour accéder à la colonne par son nom, puis appliquez la méthode tolist(). Cela renverra une liste contenant les valeurs de la colonne sélectionnée.

  3. Est-il possible de convertir plusieurs colonnes d'un DataFrame en une liste ?

    Oui, il est possible de convertir plusieurs colonnes d'un DataFrame en une liste en Python. Utilisez l'opérateur d'indexation [] pour sélectionner les colonnes souhaitées par leur nom, puis appliquez la méthode values.tolist(). Cela renverra une liste imbriquée où chaque liste interne représente les valeurs des colonnes sélectionnées.