獲取自動加載器使用的文件的路徑

獲取Auto Loader使用的所有文件的路徑和文件名,並將它們作為一個新列寫出來。

寫的亞當Pavlacka

最後發布日期:2022年5月18日

當您使用自動加載程序處理流文件時(AWS|Azure|GCP),事件將根據在底層存儲中創建的文件進行記錄。

本文向您展示如何將每個文件名的文件路徑添加到輸出DataFrame中的新列中。

其中一個用例是審計。當文件被攝取到一個分區的文件夾結構時,通常會有有用的元數據,比如時間戳,可以從路徑中提取出來用於審計。

例如,假設文件路徑和文件名為2020/2021-01-01 / file1_T191634.csv

從這個路徑中,您可以應用自定義udf,並使用正則表達式提取日期(2021-01-01)和時間戳(T191634)等詳細信息。

下麵的示例代碼使用input_file_name ()獲取每一行的路徑和文件名,並將其寫入名為filePath

%scala val df = spark.readStream.format("cloudFiles") .schema(schema) .option("cloudFiles. format ").option("cloudFiles.region","ap-south-1") .load("path") .withColumn("filePath",input_file_name()))


這篇文章有用嗎?