文件元數據列

請注意

在Databricks Runtime 10.5及以上版本中可用。

方法可以獲取輸入文件的元數據信息_metadata列。的_metadata列是隱藏的列,並可用於所有輸入文件格式。包括_metadata列,您必須在查詢中顯式引用它。

如果數據源包含名為_metadata,查詢將返回來自數據源的列,而不是文件元數據。

警告

中可以添加新字段_metadata列。以防止模式演化錯誤_metadata列更新後,Databricks建議從查詢中的列中選擇特定字段。看到例子

支持元數據

_metadata列是結構體包含以下字段:

的名字

類型

描述

例子

file_path

字符串

輸入文件的路徑。

文件:/ tmp / f0.csv

file_name

字符串

輸入文件的名稱及其擴展名。

f0.csv

file_size

輸入文件的長度,以字節為單位。

628

file_modification_time

時間戳

輸入文件的最後修改時間戳。

2021-12-2020:05:21

例子

在基本的基於文件的數據源閱讀器中使用

df火花格式“csv”模式模式負載“dbfs: / tmp / *”選擇“*”“_metadata”顯示df“‘結果:+---------+-----+----------------------------------------------------+| name | age | _metadata |+=========+=====+====================================================+| | | {|| | | "file_path": "dbfs:/tmp/ f2 .csv", | | || Debbie | 18 | "file_name": " 0.csv", | .csv"| | | "file_size": 12, || | | "file_modification_time": " 21-07-02 01:05:21" | . | | | "file_modification_time": " 21007-02 01:05:21| | |} |+---------+-----+----------------------------------------------------+| | | {|| | | "file_path": "dbfs:/tmp/f1.csv", | | || Frank | 24 | "file_name": "f1.csv", | .csv"| | | "file_size": 12, || | | "file_modification_time": " 21-12-20 02:06:21" || | |} |+---------+-----+----------------------------------------------------+“‘
瓦爾df火花格式“csv”模式模式負載“dbfs: / tmp / *”選擇“*”“_metadata”顯示df_population/ *結果:+---------+-----+----------------------------------------------------+| name | age | _metadata |+=========+=====+====================================================+| | | {|| | | "file_path": "dbfs:/tmp/ f2 .csv", | | || Debbie | 18 | "file_name": " 0.csv", | .csv"| | | "file_size": 12, || | | "file_modification_time": " 21-07-02 01:05:21" | . | | | "file_modification_time": " 21007-02 01:05:21| | |} |+---------+-----+----------------------------------------------------+| | | {|| | | "file_path": "dbfs:/tmp/f1.csv", | | || Frank | 24 | "file_name": "f1.csv", | .csv"| | | "file_size": 10, || | | "file_modification_time": " 21-12-20 02:06:21" || | |} |+---------+-----+----------------------------------------------------+* /

選擇特定的字段

火花格式“csv”模式模式負載“dbfs: / tmp / *”選擇“_metadata.file_name”“_metadata.file_size”
火花格式“csv”模式模式負載“dbfs: / tmp / *”選擇“_metadata.file_name”“_metadata.file_size”

使用過濾器

火花格式“csv”模式模式負載“dbfs: / tmp / *”選擇“*”過濾器上校“_metadata.file_name”= =點燃“test.csv”))
火花格式“csv”模式模式負載“dbfs: / tmp / *”選擇“*”過濾器上校“_metadata.file_name”= = =點燃“test.csv”))

在COPY INTO中使用

複製my_delta_table選擇_metadata“s3: / /桶/ csvData”FILEFORMATCSV

在自動加載器中使用

火花readStream格式“cloudFiles”選項“cloudFiles.format”“csv”模式模式負載“s3: / /桶/ csvData”選擇“*”“_metadata”writeStream格式“δ”選項“checkpointLocation”checkpointLocation開始targetTable
火花readStream格式“cloudFiles”選項“cloudFiles.format”“csv”模式模式負載“s3: / /桶/ csvData”選擇“*”“_metadata”writeStream格式“δ”選項“checkpointLocation”checkpointLocation開始targetTable