文件元數據列

請注意

在磚運行時10.5及以上。

你可以輸入文件的元數據信息_metadata列。的_metadata列是隱藏的列,用於所有輸入文件格式。包括_metadata列返回DataFrame,您必須顯式地引用它在你的查詢。

如果數據源包含一個列命名_metadata,查詢將返回列從數據源,而不是文件元數據。

警告

可以添加到新的字段_metadata列在將來的版本中。如果為了防止模式演化錯誤_metadata列被更新時,磚建議選擇特定字段的列在你的查詢。看到例子

支持元數據

_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)“‘結果:+ - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +| |名字年齡| _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_population)/ *結果:+ - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +| |名字年齡| _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”))

使用複製到

複製my_delta_table(選擇*,_metadata“s3: / /桶/ csvData”)FILEFORMAT=CSV

使用自動加載程序

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