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

檢查點是創建甚至盡管microbatch附加已經失敗了

_Orc
新的因素

用例

使用結構化的火花從源表讀取數據流(24小時)。應用轉換邏輯等等,最後合並的dataframe目標表。期間如果有任何失敗轉換或合並,磚的工作不應該失敗。

在我的筆記本我以下框架代碼(請忽略語法),我運行在集群工作筆記本。所以每當有失敗handlemicrobatch函數我抓住它並發送警報但是我不把錯誤,因為我們不想失敗磚的工作。但在這樣做檢查點創建即使沒有處理的數據/寫入目標表。是否有辦法避免創建檢查點在失敗的情況下沒有拋出異常的catch塊嗎?

類handlerclass (.......) {

def handlemicrobatch (df: DataFrame batchid:長){

嚐試{

應用轉換邏輯……最後合並的目標

}捕捉{案例e:異常{

錯誤日誌

發送電子郵件

}

}

}

}

val classobj = new handlerclass (……);

val檢查點= dbfs: /檢查點/ < sourcetable >

StartStream () {

val df = readstream . .在源表

val streamingquery = df.writestream

.foreachbatch (classobj。handlemicrobatch _)。

.option (“checkpointLocation檢查點)

............

.start ()

}

1接受解決方案

接受的解決方案

jose_gonzalez
主持人
主持人

嗨@Om辛格

檢查站將幫助你從失敗中恢複過來,所以你的檢查站將創建如果你流的工作失敗。你的關卡會有偏移和許多其他指標需要你流的工作能夠正常工作。你可以找到更多的細節在檢查站的工作方式和使用它的好處是什麼https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html概述

在原帖子查看解決方案

2回答2

jose_gonzalez
主持人
主持人

嗨@Om辛格

檢查站將幫助你從失敗中恢複過來,所以你的檢查站將創建如果你流的工作失敗。你的關卡會有偏移和許多其他指標需要你流的工作能夠正常工作。你可以找到更多的細節在檢查站的工作方式和使用它的好處是什麼https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html概述

匿名
不適用

嗨@Om辛格

希望你做得很好。隻是想檢查,看看你能夠找到解決你的問題嗎?

幹杯

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

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

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

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

Baidu
map