list_files funzione con valori di tabella

Si applica a:check contrassegnato come sì controllo SQL di Databricks contrassegnato come sì Databricks Runtime 18 LTS e versioni successive

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Restituisce l'elenco dei file in un percorso, includendo un FILE riferimento per ciascun file.

Sintassi

list_files(path [, connection => connection ] [, recursive => recursive ])

Arguments

  • path: Un STRING percorso da elencare. Può essere un percorso di volume, un percorso di posizione esterno o un percorso su un altro sistema di archiviazione file come SFTP, SharePoint o Google Drive.
  • connection: Una connessione opzionale al Catalogo Unity utilizzata per autenticarsi con sistemi come SFTP, SharePoint o Google Drive.
  • recursive: Un optional BOOLEAN che controlla se la funzione discende nelle sottodirectory. I valori accettati sono:
    • true: Elenca i file nel percorso e in tutte le sue sottodirectory, e non restituisce le directory. Questo è il valore predefinito.
    • false: Elenca solo le voci immediate del percorso e restituisce le directory con un nullfile riferimento e un size di 0.

Gli connection argomenti e recursive devono essere passati per nome usando => la sintassi, ad esempio connection => my_conn.

Returns

Una tabella con una riga per file, con le seguenti colonne:

Column Type Description
path STRING Percorso del file.
size BIGINT Dimensioni del file, in byte.
modification_time TIMESTAMP L'ultima modifica del file, in UTC.
file FILE Un riferimento al fascicolo.

Condizioni di errore comuni

  • LIST_FILES_AUTHORIZATION_ERROR.ON_PATH
  • LIST_FILES_AUTHORIZATION_ERROR.ON_CONNECTION
  • LIST_FILES_ERROR.PATH_NOT_EXISTS
  • LIST_FILES_ERROR.CONNECTION_NOT_EXISTS

Per maggiori informazioni, vedi Condizioni di errore in Azure Databricks.

Examples

Per elencare i file in una directory di volumi:

SELECT * FROM list_files('/Volumes/my_catalog/my_schema/my_volume/');

La funzione restituisce una riga per file:

path                                                 size   modification_time         file
/Volumes/my_catalog/my_schema/my_volume/file1.json   1234   2026-04-11 00:00:00.000   <file>

Per elencare file da un sistema esterno utilizzando una connessione Unity Catalog:

SELECT path, size FROM list_files('https://drive.google.com/drive/folders/my-folder-id', connection => my_gdrive_connection);

Per elencare solo le voci immediate di una directory, imposta recursive a false:

SELECT * FROM list_files('/Volumes/my_catalog/my_schema/my_volume/', recursive => false);

Le directory appaiono nei risultati con un nullfile riferimento e un size di 0:

path                                                 size   modification_time         file
/Volumes/my_catalog/my_schema/my_volume/file1.json   1234   2026-04-11 00:00:00.000   <file>
/Volumes/my_catalog/my_schema/my_volume/subdir/      0      2026-04-11 00:00:00.000   NULL

Per calcolare la dimensione totale di tutti i file in una directory, si somma la size colonna. Poiché recursive il predefinito è true, questo include i file nelle sottodirectory:

SELECT sum(size) AS total_bytes FROM list_files('/Volumes/my_catalog/my_schema/my_volume/');

La query restituisce la dimensione combinata in byte:

total_bytes
1234