Condividi tramite


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:

  1. Nell'area di lavoro di Azure Databricks fare clic su Icona catalogo Catalogo.
  2. 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:

  1. Selezionare uno o più file.
  2. Fare clic su Scarica per scaricare questi file.

Eliminare file da un volume

Per eliminare i file da un volume, eseguire le operazioni seguenti:

  1. Selezionare uno o più file.
  2. Fai clic su Elimina.
  3. 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:

  1. Fare clic su Menu kebab a destra del nome del volume.
  2. Selezionare Crea directory.
  3. Immettere un nome di directory.
  4. Cliccare su Crea.

Eliminare le directory da un volume

Per eliminare le directory da un volume, eseguire le operazioni seguenti:

  1. Selezionare una o più directory.
  2. Fai clic su Elimina.
  3. 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 Menu kebab 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.

  1. Selezionare uno o più file o una directory. I file devono avere lo stesso layout di dati.

  2. Fare clic su Crea tabella. Viene visualizzata la finestra di dialogo Crea tabella dai volumi .

  3. 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.

  4. 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 per dbutils.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:

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:

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}"