list_files テーブル値関数

適用対象:はい Databricks SQL チェックが Databricks Runtime 18 LTS 以上" とマークされているチェック

Important

この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。

パス上のファイル一覧を返し、各ファイルの FILE 参照も含まれます。

構文

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

Arguments

  • pathリストへの道 STRING 。 ボリュームパス、外部ロケーションパス、またはSFTP、SharePoint、Googleドライブなどの他のファイルストレージシステム上のパスなどがあります。
  • connection: SFTP、SharePoint、Google Driveなどのシステムと認証するためのオプションのUnity Catalog接続。
  • recursive関数がサブディレクトリに降りるかどうかを制御するオプションの BOOLEAN です。 指定できる値は次のとおりです。
    • true: パス内のファイルとそのすべてのサブディレクトリを一覧表示し、ディレクトリは返しません。 これが既定値です。
    • false: パスの直近のエントリのみをリストし、 nullfile 参照と size0を持つディレクトリを返します。

connectionrecursiveの引数は、=>構文(例えばconnection => my_conn)を使って名前で渡さなければなりません。

返品

ファイルごとに1行、以下の列を持つテーブル:

Column タイプ Description
path STRING ファイルへのパス。
size BIGINT ファイルのサイズ (バイト単位)。
modification_time TIMESTAMP ファイルの最終修正時刻はUTCです。
file FILE ファイルの参照。

一般的なエラー状態

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

詳細については、「Azure Databricksのエラー条件」をご覧ください。

例示

ボリュームディレクトリにファイルをリストアップするには:

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

関数はファイルごとに1行を返します:

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

Unity Catalog接続を使って外部システムからのファイルをリストアップするには:

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

ディレクトリの即時エントリのみをリストアップするには、 recursivefalseに設定してください:

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

ディレクトリは、 nullfile 参照と size0とともに結果に現れます。

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

ディレクトリ内の全ファイルの合計サイズを計算するには、 size 列の合計を行います。 recursiveデフォルトでtrueとなるため、サブディレクトリ内のファイルも含まれます:

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

クエリは合計サイズをバイト単位で返します:

total_bytes
1234