È possibile usare Pandas in Azure Databricks?
Databricks Runtime include Pandas come uno dei pacchetti Python standard, consentendo di creare e sfruttare i dataframe Pandas nei notebook e nei processi di Databricks.
In Databricks Runtime 10.4 e versioni successive l'API Pandas in Spark offre comandi Pandas familiari oltre ai dataframe PySpark. È anche possibile convertire i dataframe tra Pandas e PySpark.
Apache Spark include l'esecuzione ottimizzata per arrow della logica Python sotto forma di API per le funzioni pandas, che consentono agli utenti di applicare trasformazioni pandas direttamente ai dataframe PySpark. Apache Spark supporta anche le funzioni definite dall'utente pandas, che usano ottimizzazioni freccia simili per le funzioni utente arbitrarie definite in Python.
Where pandas archivia i dati in Azure Databricks?
È possibile usare pandas per archiviare i dati in molte posizioni diverse in Azure Databricks. La tua capacità di archiviare e caricare dati da alcune località dipende dalle configurazioni set stabilite dagli amministratori dell'area di lavoro.
Nota
Databricks consiglia di archiviare i dati di produzione nell'archiviazione di oggetti cloud. Vedere Connettersi a Azure Data Lake Storage Gen2 e Archiviazione BLOB.
Se si usa un'area di lavoro abilitata per Unity Catalog, è possibile accedere all'archiviazione cloud con posizioni esterne. Si veda Creare una posizione esterna per connettere la memorizzazione cloud ad Azure Databricks.
Per l'esplorazione rapida e i dati senza informazioni riservate, è possibile salvare i dati usando percorsi relativi o DBFS, come nei seguenti esempi:
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")
È possibile esplorare i file scritti in DBFS con il comando magic %fs
, come nel seguente esempio. Si noti che la directory è il percorso radice per questi comandi /dbfs
.
%fs ls
Quando si salva in un percorso relativo, il percorso del file dipende da where si esegue il codice. Se si usa un notebook di Databricks, il file di dati viene salvato nell'archiviazione del volume collegata al driver del cluster. I dati archiviati in questa posizione vengono eliminati definitivamente al termine del cluster. Se si usano cartelle Git di Databricks con supporto di file arbitrari abilitato, i dati vengono salvati nella radice del progetto corrente. In entrambi i casi, è possibile esplorare i file scritti usando il comando magic %sh
, che consente semplici operazioni bash relative alla directory radice corrente, come nel seguente esempio:
%sh ls
Per altre informazioni su come Azure Databricks archivia vari file, vedere Usare file in Azure Databricks.
Come si caricano i dati con Pandas in Azure Databricks?
Azure Databricks offre diverse opzioni per facilitare il caricamento dei dati nell'area di lavoro per l'esplorazione. Il metodo preferito per caricare i dati con pandas varia a seconda della modalità di caricamento dei dati nell'area di lavoro.
Se nel computer locale sono archiviati file di dati di piccole dimensioni, è possibile caricare i dati e il codice insieme alle cartelle Git. È quindi possibile usare percorsi relativi per caricare i file di dati.
Azure Databricks offre opzioni complete basate sull'interfaccia utente per il caricamento dei dati. La maggior parte di queste opzioni archivia i dati come Delta tables. È possibile leggere un Delta table in un DataFrame di Spark e quindi convertirlo in un DataFrame di pandas.
Se sono stati salvati file di dati usando DBFS o percorsi relativi, è possibile usare DBFS o percorsi relativi per ricaricare quei file di dati. Nel codice seguente ne viene illustrato un esempio:
import pandas as pd
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")
È possibile caricare i dati direttamente da Azure Data Lake Storage Gen2 usando pandas e un URL completo. È necessario fornire cloud credentials per accedere ai dati cloud. I pacchetti Python fsspec
e adlfs
devono essere installati anche.
df = pd.read_csv(
f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
storage_options={
"sas_token": sas_token_value
}
)