Gestire i file nei volumi
Questo articolo fornisce esempi per la gestione dei file nei volumi del catalogo Unity per varie interfacce utente, strumenti, librerie e linguaggi.
Databricks consiglia di usare volumi per la gestione di tutti gli accessi a dati non tabulari nell'archiviazione di oggetti cloud. Di seguito sono riportati alcuni esempi di dati non tabulari:
- File di dati per l'inserimento, ad esempio CSV, JSON e Parquet.
- File di testo, immagine e audio per carichi di lavoro di data science, ML e intelligenza artificiale.
- Artefatti CSV o JSON scritti da Azure Databricks per l'integrazione con sistemi esterni.
È possibile usare volumi per archiviare file come librerie, script init e artefatti di compilazione. Vedere Raccomandazioni per i file nei volumi e nei file dell'area di lavoro.
Usare i file nei volumi usando l'interfaccia utente di Esplora cataloghi
Esplora cataloghi offre opzioni per le attività comuni di gestione dei file per i file archiviati con volumi del catalogo Unity.
Per interagire con i file in un volume, eseguire le operazioni seguenti:
- Nell'area di lavoro di Azure Databricks fare clic su Catalogo.
- Cercare o cercare il volume con cui si vuole lavorare e selezionarlo.
Per informazioni dettagliate sulla creazione e la gestione dei volumi, vedere Creare e gestire volumi.
Caricare file in una cartella
Il pulsante Carica in questo volume apre una finestra di dialogo per caricare i file. Vedere Caricamento file in un volume del catalogo Unity.
I file caricati non possono superare i 5 GB.
Scaricare i file da un volume
Per scaricare i file da un volume, eseguire le operazioni seguenti:
- Selezionare uno o più file.
- Fare clic su Scarica per scaricare questi file.
Eliminare file da un volume
Per eliminare i file da un volume, eseguire le operazioni seguenti:
- Selezionare uno o più file.
- Fai clic su Elimina.
- Fare clic su Elimina per confermare nella finestra di dialogo visualizzata.
Creare una directory vuota
Per creare una nuova directory in un volume, eseguire le operazioni seguenti:
- Fare clic su a destra del nome del volume.
- Selezionare Crea directory.
- Immettere un nome di directory.
- Cliccare su Crea.
Eliminare le directory da un volume
Per eliminare le directory da un volume, eseguire le operazioni seguenti:
- Selezionare una o più directory.
- Fai clic su Elimina.
- Fare clic su Elimina per confermare nella finestra di dialogo visualizzata.
Attività di gestione dei file dell'interfaccia utente per i volumi
Fare clic sul menu kebab accanto a un nome file per eseguire le azioni seguenti:
- Copia percorso
- Scarica file
- Elimina file
- Crea tabella
Creare una tabella dai dati in un volume
Azure Databricks offre un'interfaccia utente per creare una tabella gestita di Unity Catalog da un file, file o directory di file archiviati in un volume di Unity Catalog.
È necessario disporre CREATE TABLE
delle autorizzazioni nello schema di destinazione e avere accesso a un'istanza di SQL Warehouse in esecuzione.
Selezionare uno o più file o una directory. I file devono avere lo stesso layout di dati.
Fare clic su Crea tabella. Viene visualizzata la finestra di dialogo Crea tabella dai volumi .
Usare la finestra di dialogo fornita per esaminare un'anteprima dei dati e completare le configurazioni seguenti:
- Scegliere Crea nuova tabella o Sovrascrivi tabella esistente
- Selezionare il catalogo e lo schema di destinazione.
- Specificare il nome della tabella.
- (Facoltativo) Eseguire l'override dei nomi e dei tipi di colonna predefiniti oppure scegliere di escludere colonne.
Nota
Fare clic su Attributi avanzati per visualizzare opzioni aggiuntive.
Fare clic su Crea tabella per creare la tabella con gli attributi specificati. Al termine, Esplora cataloghi visualizza i dettagli della tabella.
Usare file in volumi in Azure Databricks a livello di codice
È possibile leggere e scrivere file in volumi da tutti i linguaggi e gli editor di aree di lavoro supportati usando il formato seguente:
/Volumes/catalog_name/schema_name/volume_name/path/to/files
Si interagisce con i file nei volumi nello stesso modo in cui si interagisce con i file in qualsiasi percorso di archiviazione di oggetti cloud. Ciò significa che se attualmente si gestisce il codice che usa URI cloud, percorsi di montaggio DBFS o percorsi radice DBFS per interagire con dati o file, è possibile aggiornare il codice in modo da usare i volumi.
Nota
I volumi vengono usati solo per i dati non tabulari. Databricks consiglia di registrare dati tabulari usando le tabelle di Unity Catalog e quindi di leggere e scrivere dati usando nomi di tabella.
Leggere e scrivere dati in volumi
È possibile usare Apache Spark, pandas, Spark SQL e altre librerie OSS per leggere e scrivere file di dati nei volumi.
Gli esempi seguenti illustrano la lettura di un file CSV archiviato in un volume:
Python
df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")
display(df)
Pandas
import pandas as pd
df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')
display(df)
SQL
SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`
Comandi di utilità per i file nei volumi
Databricks offre gli strumenti seguenti per la gestione dei file nei volumi:
- Modulo
dbutils.fs
secondario in Utilità di Databricks. Vedere Utilità file system (dbutils.fs). - Il
%fs
magic, ovvero un alias perdbutils.fs
. - La
%sh
magia, che consente il comando bash sui volumi.
Per un esempio di utilizzo di questi strumenti per scaricare file da Internet, decomprimere i file e spostare file dall'archiviazione temporanea a blocchi ai volumi, vedere Scaricare i dati da Internet.
È anche possibile usare i pacchetti OSS per i comandi dell'utilità file, ad esempio il modulo Python os
, come illustrato nell'esempio seguente:
import os
os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')
Gestire i file nei volumi da strumenti esterni
Databricks offre una suite di strumenti per la gestione a livello di codice dei file in volumi dall'ambiente locale o dai sistemi integrati.
Comandi SQL per i file nei volumi
Azure Databricks supporta le parole chiave SQL seguenti per interagire con i file nei volumi:
Nota
I notebook di Databricks o l'editor di query supportano solo il LIST
comando .
I connettori e i driver SQL di Databricks seguenti supportano la gestione dei file nei volumi:
- Connettore SQL di Databricks per Python. Consultare Gestire file nei volumi nel catalogo Unity.
- Driver SQL di Databricks per Go. Consultare Gestire file nei volumi nel catalogo Unity.
- Driver SQL di Databricks per Node.js. Consultare Gestire file nei volumi nel catalogo Unity.
- Driver JDBC di Databricks. Vedere Gestire i file nei volumi di Unity Catalog con il driver JDBC di Databricks.
- Driver ODBC di Databricks. Vedere Gestire i file nei volumi di Unity Catalog con il driver ODBC di Databricks.
Gestire i file nei volumi con l'interfaccia della riga di comando di Databricks
Usare i sottocomandi in databricks fs
. Vedere il gruppo di comandi fs.
Nota
L'interfaccia della riga di comando di Databricks richiede che lo schema dbfs:/
precede tutti i percorsi dei volumi. Ad esempio: dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data
.
Gestire i file nei volumi con GLI SDK
Gli SDK seguenti supportano la gestione dei file nei volumi:
- Databricks SDK per Python. Usare i metodi disponibili in WorkspaceClient.files. Per esempi, vedere Gestire i file nei volumi del catalogo Unity.
- Databricks SDK per Java. Usare i metodi disponibili in WorkspaceClient.files. Per esempi, vedere Gestire i file nei volumi del catalogo Unity.
- Databricks SDK per Go. Usare i metodi disponibili in WorkspaceClient.files. Per esempi, vedere Gestire i file nei volumi del catalogo Unity.
Gestire i file nei volumi con l'API REST
Usare l'API File per gestire i file nei volumi.
Esempi di API REST per i file nei volumi
Gli esempi seguenti usano curl
e l'API REST di Databricks per eseguire attività di gestione dei file nei volumi.
Nell'esempio seguente viene creata una cartella vuota denominata my-folder
nel volume specificato.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
Nell'esempio seguente viene creato un file denominato data.csv
con i dati specificati nel percorso specificato nel volume.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'
Nell'esempio seguente viene elencato il contenuto di un volume nel percorso specificato. Questo esempio usa jq per formattare il codice JSON del corpo della risposta per facilitare la lettura.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
Nell'esempio seguente viene elencato il contenuto di una cartella in un volume nel percorso specificato. Questo esempio usa jq per formattare il codice JSON del corpo della risposta per facilitare la lettura.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
Nell'esempio seguente viene stampato il contenuto di un file nel percorso specificato in un volume.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
Nell'esempio seguente viene eliminato un file nel percorso specificato da un volume.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
Nell'esempio seguente viene eliminata una cartella dal volume specificato.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"