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

DLT流表和加入

構造背景
新的貢獻者三世

我試圖建立黃金水平流媒體直播表基於兩個流銀表與生活左連接

這次嚐試失敗了,下一個錯誤:

“Append模式錯誤:Stream-stream LeftOuter加入兩個流DataFrame /數據集不支持沒有水印的連接鍵,或水印nullable一邊和一個適當的範圍條件”

我的問題是如何實現水印使用SQL接口?我在哪裏可以找到例子嗎?

謝謝。

5回複5

Kaniz
社區經理
社區經理

嗨@Alexander Plepler,您不能使用append模式聚合DataFrame沒有水印。這是通過設計。

你必須申請一個水印DataFrame如果您想要使用append模式聚合DataFrame。

聚合必須有一個事件時間列或一個窗口的事件時間列。

組數據窗口和詞,計算每組的數量。

.withWatermark()必須在同一列中使用的時間戳列聚合。

示例代碼顯示了這是如何做到的。

值<類型>替換為你處理的元素。例如,您將使用行如果你正在處理的行。

替換值<單詞>模式的流DataFrame}{時間戳:時間戳,詞:字符串。

JAVA

數據集<類型> windowedCounts = <單詞> .withWatermark(“時間戳”,“十分鍾”).groupBy (functions.window (words.col(“時間戳”),“十分鍾”,“5分鍾”),words.col(“單詞”)).count ();

PYTHON

windowedCounts = <單詞> \ .withWatermark(“時間戳”,“十分鍾”)\ .groupBy(窗口(單詞。時間戳,“十分鍾”,“5分鍾”)、words.word) \ .count ()

SCALA

進口spark.implicits。_ val windowedCounts = <單詞> .withWatermark(“時間戳”,“十分鍾”).groupBy(窗口(美元“時間戳”,“十分鍾”,“5分鍾”),“單詞”美元).count ()

你必須調用.withWatermark()之前執行聚合。否則失敗,並顯示一條錯誤消息。

例如,

df.groupBy(“時間”).count ()。withWatermark(“時間”、“1分”)

返回一個例外。

請參考Apache火花™文檔條件水印清潔聚合板岩為更多的信息。

構造背景
新的貢獻者三世

感謝所有,

我能理解需要水印,但是我隻是想知道這個由SQL語法嗎?

TomRenish
新的貢獻者三世

我糾結類似的問題。這篇文章,很明顯,你需要使用scala / python / java / r:流媒體寫道

嗨@Alexander Plepler,這文章介紹了數字水印的基本概念,並提供建議使用水印在日常狀態流操作。

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

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

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

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

Baidu
map