Partager via


Pouvez-vous utiliser pandas sur Azure Databricks ?

Databricks Runtime inclut pandas en tant que package Python standard, ce qui vous permet de créer et d’exploiter des DataFrames pandas dans des notebooks et des travaux Databricks.

Dans Databricks Runtime 10.4 LTS et versions ultérieures, l’API Pandas sur Spark fournit des commandes pandas familières sur les DataFrames PySpark. Vous pouvez aussi convertir des DataFrames entre pandas et PySpark.

Apache Spark inclut l’exécution optimisée par Arrow de la logique Python sous la forme d’API de fonctions pandas, qui permettent aux utilisateurs d’appliquer des transformations pandas directement aux DataFrames PySpark. Apache Spark prend également en charge les fonctions pandas définies par l’utilisateur, qui utilisent des optimisations Arrow similaires pour les fonctions utilisateur arbitraires définies dans Python.

Où pandas stocke-t-il les données sur Azure Databricks ?

Vous pouvez utiliser pandas pour stocker les données à de nombreux emplacements différents sur Azure Databricks. Votre capacité à stocker et charger des données depuis certains emplacements dépend des configurations définies par les administrateurs de l’espace de travail.

Notes

Databricks recommande de stocker les données de production sur un stockage d’objets cloud. Consultez Se connecter à Azure Data Lake Storage Gen2 et Stockage Blob.

Si vous êtes dans un espace de travail activé pour Unity Catalog, vous pouvez accéder au stockage cloud avec des emplacements externes. Consultez Créer un emplacement externe pour connecter le stockage cloud à Azure Databricks.

Pour une exploration rapide et des données sans informations sensibles, vous pouvez enregistrer sans problème les données en utilisant des chemins relatifs ou DBFS, comme dans les exemples suivants :

import pandas as pd

df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])

df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/dbfs_test.csv")

Vous pouvez explorer les fichiers écrits dans DBFS avec la commande magic %fs, comme dans l’exemple suivant. Notez que le répertoire /dbfs est le chemin racine pour ces commandes.

%fs ls

Quand vous enregistrez dans un chemin relatif, l’emplacement de votre fichier dépend de l’emplacement où vous exécutez votre code. Si vous utilisez un notebook Databricks, votre fichier de données est enregistré dans le stockage de volume attaché au pilote de votre cluster. Les données stockées à cet emplacement sont supprimées définitivement quand le cluster est arrêté. Si vous utilisez des dossiers Git Databricks avec la prise en charge des fichiers arbitraires activée, vos données sont enregistrées à la racine de votre projet actuel. Dans les deux cas, vous pouvez explorer les fichiers écrits en utilisant la commande magic %sh, qui permet des opérations bash simples relatives à votre répertoire racine actuel, comme dans l’exemple suivant :

%sh ls

Pour plus d’informations sur la façon dont Azure Databricks stocke divers fichiers, consultez Utiliser des fichiers sur Azure Databricks.

Comment charger des données avec pandas sur Azure Databricks ?

Azure Databricks fournit plusieurs options pour faciliter le chargement des données dans l’espace de travail à des fins d’exploration. La méthode préférée pour charger des données avec pandas varie en fonction de la façon dont vous chargez vos données dans l’espace de travail.

Si vous avez de petits fichiers de données stockés en même temps que des notebooks sur votre machine locale, vous pouvez charger vos données et votre code ensemble avec des dossiers Git. Vous pouvez ensuite utiliser des chemins relatifs pour charger des fichiers de données.

Azure Databricks fournit des options complètes basées sur l’interface utilisateur pour le chargement des données. La plupart de ces options stockent vos données sous forme de tables Delta. Vous pouvez lire une table Delta dans un DataFrame Spark, puis le convertir en un DataFrame pandas.

Si vous avez enregistré des fichiers de données en utilisant DBFS ou des chemins relatifs, vous pouvez utiliser DBFS ou des chemins relatifs pour recharger ces fichiers de données. Le code suivant montre un exemple :

import pandas as pd

df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")

Vous pouvez charger des données directement depuis Azure Data Lake Storage Gen2 en utilisant Pandas et une URL complète. Vous devez fournir des informations d’identification cloud pour accéder aux données cloud. Les packages Python fsspec et adlfs doivent également être installés.

df = pd.read_csv(
  f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
  storage_options={
    "sas_token": sas_token_value
  }
)