文件元數據列
請注意
在磚運行時10.5及以上。
你可以輸入文件的元數據信息_metadata
列。的_metadata
列是隱藏的列,用於所有輸入文件格式。包括_metadata
列返回DataFrame,您必須顯式地引用它在你的查詢。
如果數據源包含一個列命名_metadata
,查詢將返回列從數據源,而不是文件元數據。
警告
可以添加到新的字段_metadata
列在將來的版本中。如果為了防止模式演化錯誤_metadata
列被更新時,磚建議選擇特定字段的列在你的查詢。看到例子。
支持元數據
的_metadata
列是結構體
包含以下字段:
的名字 |
類型 |
描述 |
例子 |
---|---|---|---|
file_path |
|
輸入文件的文件路徑。 |
|
file_name |
|
輸入文件的名稱及其擴展。 |
|
file_size |
|
輸入文件的長度,以字節為單位。 |
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_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”))
使用自動加載程序
火花。readStream\。格式(“cloudFiles”)\。選項(“cloudFiles.format”,“csv”)\。模式(模式)\。負載(“s3: / /桶/ csvData”)\。選擇(“*”,“_metadata”)\。writeStream\。格式(“δ”)\。選項(“checkpointLocation”,checkpointLocation)\。開始(targetTable)
火花。readStream。格式(“cloudFiles”)。選項(“cloudFiles.format”,“csv”)。模式(模式)。負載(“s3: / /桶/ csvData”)。選擇(“*”,“_metadata”)。writeStream。格式(“δ”)。選項(“checkpointLocation”,checkpointLocation)。開始(targetTable)