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

添加重複數據刪除方法引發流

patojo94
新的貢獻者二世

大家好,我有一些麻煩添加重複數據刪除步驟已經運行的文件流。我想添加的代碼是這個:

df = df。withWatermark (“arrival_time”、“20分鍾”)\ .dropDuplicates ([“event_id”、“arrival_time”])

然而,我得到以下錯誤。

引起的:. lang。HDFSStateStoreProvider IllegalStateException:錯誤閱讀流狀態文件[id = (op = 0 = 101), dir = dbfs: / mnt /檢查點/ silver_events /州/ 0/101):dbfs: / mnt /檢查點/ silver_events /州/ 0/101/1.delta並不存在。如果流的工作重新開始一個新的或更新的狀態操作,請創建一個新的檢查點位置或清除現有檢查點位置。

錯過兩個問題是:

  1. 為什麼我得到這個錯誤,這是什麼意思?
  2. 真的可以刪除一個流檢查點和重啟流時不會重複的數據?

謝謝你!

1接受解決方案

接受的解決方案

Kaniz
社區經理
社區經理

嗨@patricio東城,你可以減少重複記錄在事件數據流使用一個惟一的標識符。這是完全相同的重複數據刪除靜態使用一個惟一的標識符列。必要的查詢將存儲的數據量從以前的記錄,這樣它可以過濾重複的記錄。類似於聚合,可以使用重複數據刪除有或沒有水印。

  • 有水印——如果有一個上限多晚複製記錄可以到達,你可以定義一個事件時間列上水印和減少重複使用guid和事件時間列。查詢將使用水印從過去的記錄,刪除舊的狀態數據預計不會得到任何副本了。這個界限的狀態查詢必須維護。

  • 沒有水印——因為沒有界限複製記錄可能到達的時候,查詢存儲數據從所有過去記錄的狀態。

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html streaming-deduplica……

解決方案1。

解決方案2。

在原帖子查看解決方案

2回答2

Kaniz
社區經理
社區經理

嗨@patricio東城,你可以減少重複記錄在事件數據流使用一個惟一的標識符。這是完全相同的重複數據刪除靜態使用一個惟一的標識符列。必要的查詢將存儲的數據量從以前的記錄,這樣它可以過濾重複的記錄。類似於聚合,可以使用重複數據刪除有或沒有水印。

  • 有水印——如果有一個上限多晚複製記錄可以到達,你可以定義一個事件時間列上水印和減少重複使用guid和事件時間列。查詢將使用水印從過去的記錄,刪除舊的狀態數據預計不會得到任何副本了。這個界限的狀態查詢必須維護。

  • 沒有水印——因為沒有界限複製記錄可能到達的時候,查詢存儲數據從所有過去記錄的狀態。

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html streaming-deduplica……

解決方案1。

解決方案2。

Kaniz
社區經理
社區經理

嗨@patricio故事,我們還沒有收到你最後的回應我,我被檢查回看到如果你有一個決議。如果你有任何解決方案,請與社區分享,因為它可以幫助別人。否則,我們將與更多的細節和試圖幫助回應。

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

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

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

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

Baidu
map