文件元數據列
筆記
在Databricks運行時10.5及以上可用。
您可以獲取有關輸入文件的元數據信息_metadata
柱子。這_metadata
列是隱列,可用於所有輸入文件格式。包括_metadata
返回的數據框中的列,您必須在查詢中明確將其引用。
如果數據源包含一個名稱的列_metadata
,查詢將從數據源返回列,而不是文件元數據。
警告
新字段可能會添加到_metadata
未來版本中的專欄。為了防止模式演變錯誤,如果_metadata
已更新列,Databricks建議您從查詢中的列中選擇特定字段。看例子。
支持的元數據
這_metadata
列是結構
包含以下字段:
姓名 |
類型 |
描述 |
例子 |
---|---|---|---|
文件路徑 |
|
輸入文件的文件路徑。 |
|
文件名 |
|
輸入文件的名稱及其擴展名。 |
|
文件大小 |
|
輸入文件的長度,字節。 |
628 |
file_modification_time |
|
輸入文件的最後修改時間戳。 |
|
例子
在基本的基於文件的數據源讀取器中使用
DF=火花。讀\ \。格式((“ CSV”)\ \。模式((模式)\ \。加載((“ dbfs:/tmp/*”)\ \。選擇((“*”,,,,“ _metadata”)展示((DF)'''結果:+----------+-----+-----------------------------------------------------------------------------------------------------+|名稱|年齡|_metadata |+==============================================================================+|||{||||“ file_path”:“ dbfs:/tmp/f0.csv”,||黛比|18 |“ file_name”:“ f0.csv”,||||“ file_size”:12,||||“ file_modification_time”:“ 2021-07-02 01:05:21” ||||} |+----------+-----+-----------------------------------------------------------------------------------------------------+|||{||||“ file_path”:“ dbfs:/tmp/f1.csv”,||弗蘭克|24 |“ file_name”:“ f1.csv”,||||“ file_size”:12,||||“ file_modification_time”:“ 2021-12-20 02:06:21” ||||} |+----------+-----+-----------------------------------------------------------------------------------------------------+'''
瓦爾DF=火花。讀。格式((“ CSV”)。模式((模式)。加載((“ dbfs:/tmp/*”)。選擇((“*”,,,,“ _metadata”)展示((DF_POPULUTION)/* 結果:+----------+-----+-----------------------------------------------------------------------------------------------------+|名稱|年齡|_metadata |+==============================================================================+|||{||||“ file_path”:“ dbfs:/tmp/f0.csv”,||黛比|18 |“ file_name”:“ f0.csv”,||||“ file_size”:12,||||“ file_modification_time”:“ 2021-07-02 01:05:21” ||||} |+----------+-----+-----------------------------------------------------------------------------------------------------+|||{||||“ file_path”:“ dbfs:/tmp/f1.csv”,||弗蘭克|24 |“ file_name”:“ f1.csv”,||||“ file_size”:10,||||“ file_modification_time”:“ 2021-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”))
在自動加載機中使用
火花。readstream\ \。格式((“ Cloudfiles”)\ \。選項((“ cloudfiles.format”,,,,“ CSV”)\ \。模式((模式)\ \。加載((“ s3:// my-bucket/csvdata”)\ \。選擇((“*”,,,,“ _metadata”)\ \。writestream\ \。格式((“三角洲”)\ \。選項((“ checkpointlocation”,,,,checkpointLocation)\ \。開始((目標台)
火花。readstream。格式((“ Cloudfiles”)。選項((“ cloudfiles.format”,,,,“ CSV”)。模式((模式)。加載((“ s3:// my-bucket/csvdata”)。選擇((“*”,,,,“ _metadata”)。writestream。格式((“三角洲”)。選項((“ checkpointlocation”,,,,checkpointLocation)。開始((目標台)