取消
顯示的結果
而不是尋找
你的意思是:

識別partitionValues寫昨天從三角洲

soundari
新的因素

我們有一個流數據寫入三角洲。我們不會每天都寫所有的分區。因此我想運行緊湊的火花工作,隻在昨天的分區已被修改。是否可以查詢partitionsValues昨天從三角洲日誌寫?

1接受解決方案

接受的解決方案

Deepak_Bhutada
貢獻者三世

嗨@Gnanasoundari Soundarajan

根據你提供的詳細信息,您每天都不覆蓋所有的分區使用append模式,這意味著你可能會寫在第一天的數據。2天,你想訪問這些分區值和運行一個操作。您可以檢索數據寫在第一天遵循以下步驟:

  • 在三角洲,每次執行任何操作,事務日誌生成和存儲在_delta_log文件夾。你可以描述曆史的三角洲表和在其上創建一個臨時視圖使用正常的SQL訪問表的曆史
# #創建一個臨時表上曆史觀火花。sql (s”desc < table_name >”) .filter(“操作”= = =美元(“追加”)).orderBy(“時間戳”.desc美元).createOrReplaceTempView (“< tempViewName >”) # #創建一個sql創建數據庫表的視圖%如果不存在測試;創建表如果不存在table_name_1使用三角洲作為select * < tempViewName >;# #從上麵創建的表%選擇有關列顯示sql (sql(“”選擇job.runId runId, operationParameters。batchId batchId operationMetrics。numRemovedFiles numRemovedFiles operationMetrics。numRemovedBytes numRemovedBytes operationMetrics。numAddedFiles numAddedFiles operationMetrics。從table_name_1 numAddedBytes numAddedBytes, * " " "))

由此,你可以得到什麼版本添加日誌中由於哪個操作(優化、追加等)

  • 在你知道你想要使用的版本,你可以時間旅行,版本
% python #查詢三角洲表版本使用versionAsOf (df =火花。讀.format(“δ”).option (“versionAsOf”、“5238”) .load(路徑“/ / /我的/表”))#查詢三角洲表版本使用@參數(df =火花。讀.format(“δ”).load(“/道路/ /我/ table@v5238”)) % sql——查詢metastore-defined三角洲表版本從my_table選擇COUNT(*)在5238年從my_table@v5238——選擇COUNT(*)查詢三角洲表由版本文件路徑從delta.選擇COUNT(*)“/道路/ /我/ table@v5238”

現在你有這個版本對應的數據。你可以創建一個視圖上執行一個操作的,或者你可以把它作為描述在上麵的代碼片段。

希望這是有幫助的

在原帖子查看解決方案

3回複3

Kaniz
社區經理
社區經理

你好@soundari!我的名字叫Kaniz,我這裏的技術主持人。很高興認識你,謝謝你的問題!看看你的同行在社區中有一個回答你的問題。否則我將盡快給你回電。謝謝。

Deepak_Bhutada
貢獻者三世

嗨@Gnanasoundari Soundarajan

根據你提供的詳細信息,您每天都不覆蓋所有的分區使用append模式,這意味著你可能會寫在第一天的數據。2天,你想訪問這些分區值和運行一個操作。您可以檢索數據寫在第一天遵循以下步驟:

  • 在三角洲,每次執行任何操作,事務日誌生成和存儲在_delta_log文件夾。你可以描述曆史的三角洲表和在其上創建一個臨時視圖使用正常的SQL訪問表的曆史
# #創建一個臨時表上曆史觀火花。sql (s”desc < table_name >”) .filter(“操作”= = =美元(“追加”)).orderBy(“時間戳”.desc美元).createOrReplaceTempView (“< tempViewName >”) # #創建一個sql創建數據庫表的視圖%如果不存在測試;創建表如果不存在table_name_1使用三角洲作為select * < tempViewName >;# #從上麵創建的表%選擇有關列顯示sql (sql(“”選擇job.runId runId, operationParameters。batchId batchId operationMetrics。numRemovedFiles numRemovedFiles operationMetrics。numRemovedBytes numRemovedBytes operationMetrics。numAddedFiles numAddedFiles operationMetrics。從table_name_1 numAddedBytes numAddedBytes, * " " "))

由此,你可以得到什麼版本添加日誌中由於哪個操作(優化、追加等)

  • 在你知道你想要使用的版本,你可以時間旅行,版本
% python #查詢三角洲表版本使用versionAsOf (df =火花。讀.format(“δ”).option (“versionAsOf”、“5238”) .load(路徑“/ / /我的/表”))#查詢三角洲表版本使用@參數(df =火花。讀.format(“δ”).load(“/道路/ /我/ table@v5238”)) % sql——查詢metastore-defined三角洲表版本從my_table選擇COUNT(*)在5238年從my_table@v5238——選擇COUNT(*)查詢三角洲表由版本文件路徑從delta.選擇COUNT(*)“/道路/ /我/ table@v5238”

現在你有這個版本對應的數據。你可以創建一個視圖上執行一個操作的,或者你可以把它作為描述在上麵的代碼片段。

希望這是有幫助的

Kaniz
社區經理
社區經理

嗨@Gnanasoundari Soundarajan,隻是一個友好的後續。你還需要幫助,或@Deepak Bhutada’s響應幫助你找到解決方案了嗎?請讓我們知道。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map