簡體   English   中英

Azure 數據工廠 - 如何只讀取由 Databricks 構建的 Delta 格式 Parquet 中的最新數據集?

[英]Azure Data Factory - How to read only the latest dataset in a Delta format Parquet built from Databricks?

為了清楚格式,這是 DataFrame 在 Databricks 中的保存方式:

folderpath = "abfss://container@storage.dfs.core.windows.net/folder/path"
df.write.format("delta").mode("overwrite").save(folderPath)

這會在主文件夾中生成一組 Parquet 文件(通常分為 2-4 個塊),其中包含一個包含描述數據上傳的文件的 _delta_log 文件夾。 增量日志文件夾指示應讀取文件夾中的哪一組 Parquet 文件。

在 Databricks 中,我會通過執行以下操作來讀取 exmaple 的最新數據集:

df = spark.read.format("delta").load(folderpath)

我將如何在 Azure 數據工廠中執行此操作? 我選擇了 Azure Data Lake Gen 2,然后是 Parquet 格式,但這似乎不起作用,因為我讀取了整套鑲木地板(即所有數據集),而不僅僅是最新的。

我該如何正確設置?

使用數據工廠管道,似乎很難實現這一點。 但我有一些想法給你:

  1. 使用lookup active獲取 delta_log 文件的內容。 如果有很多文件,請使用獲取元數據來獲取所有文件模式(最后修改日期)。

  2. 使用if condition active 或swich active來過濾最新數據。

  3. 數據過濾后,通過lookup output設置copy active source(set as parameter)。

最難的是你需要弄清楚如何使用 delta_log 過濾最新的數據集。 你可以試試這種方式,整個工作流程應該是這樣的,但我不能告訴你它是否真的有效。 如果沒有相同的環境,我無法為您測試。

HTP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM