Aller au contenu principal

Pouvez-vous utiliser pandas sur Databricks ?

Databricks Runtime inclut Pandas en tant que l'un des packages Python standard, vous permettant de créer et d'exploiter les DataFrames Pandas dans les Notebooks et Jobs Databricks.

Dans Databricks Runtime 10.4 LTS et versions supérieures, Pandas API sur Spark fournit des commandes pandas familières sur les DataFrames PySpark. Vous pouvez également 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'APIs de fonction Pandas, qui permettent aux utilisateurs d'appliquer des transformations Pandas directement aux DataFrames PySpark. Apache Spark prend également en charge les UDF pandas, qui utilisent des optimisations Arrow similaires pour les fonctions utilisateur arbitraires définies en Python.

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

Vous pouvez utiliser pandas pour stocker des données à de nombreux emplacements différents sur Databricks. Votre capacité à stocker et charger des données à partir de certains emplacements dépend des configurations définies par les administrateurs du Workspace.

remarque

Databricks recommande de stocker les données de production sur le stockage d'objets cloud. Consultez Connectez-vous à Amazon S3.

Si vous êtes dans un workspace compatible Unity Catalog, vous pouvez accéder au stockage cloud avec des emplacements externes. Voir Vue d'ensemble des emplacements externes.

Pour une exploration rapide et des données sans informations sensibles, vous pouvez enregistrer les données en toute sécurité en utilisant soit les chemins relatifs, soit le DBFS, comme dans les exemples suivants :

Python
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 le DBFS avec la commande magique %fs, comme dans l'exemple suivant. Notez que le répertoire /dbfs est le chemin racine pour ces commandes.

Bash
%fs ls

Lorsque vous enregistrez vers un chemin relatif, l'emplacement de votre fichier dépend de l'endroit où vous exécutez votre code. Si vous utilisez un Notebook Databricks, votre fichier de données est enregistré sur le stockage de volume attaché au Driver de votre cluster. Les données stockées à cet emplacement sont supprimées définitivement lorsque le cluster se termine. Si vous utilisez les dossiers Git Databricks avec le support de fichiers arbitraires activé, vos données sont enregistrées à la racine de votre projet actuel. Dans les deux cas, vous pouvez explorer les fichiers écrits à l'aide de la commande magique %sh, qui permet des opérations bash simples par rapport à votre répertoire racine actuel, comme dans l'exemple suivant :

Bash
%sh ls

Pour plus d'informations sur la façon dont Databricks stocke divers fichiers, consultez Travailler avec des fichiers sur Databricks.

Comment chargez-vous les données avec pandas sur Databricks ?

Databricks offre plusieurs options pour faciliter l'upload de données vers le Workspace pour l'exploration. La méthode privilégiée pour charger des données avec pandas varie en fonction de la manière dont vous chargez vos données dans le Workspace.

Si vous avez de petits fichiers de données stockés avec des Notebooks sur votre machine locale, vous pouvez upload vos données et votre code ensemble avec des dossiers Git. Vous pouvez ensuite utiliser des chemins relatifs pour charger les fichiers de données.

Databricks fournit de nombreuses options basées sur l'interface utilisateur pour le chargement de 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 DataFrame pandas.

Si vous avez enregistré des fichiers de données à l'aide de DBFS ou de chemins relatifs, vous pouvez utiliser DBFS ou des chemins relatifs pour recharger ces fichiers de données. Le code suivant fournit un exemple :

Python
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 S3 en utilisant pandas et une URL entièrement qualifiée. Vous devez fournir des identifiants cloud pour accéder aux données cloud.

Python
df = pd.read_csv(
f"s3://{bucket_name}/{file_path}",
storage_options={
"key": aws_access_key_id,
"secret": aws_secret_access_key,
"token": aws_session_token
}
)