當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R SparkR withWatermark用法及代碼示例


說明:

為此流式 SparkDataFrame 定義事件時間水印。水印跟蹤一個時間點,在此之前我們假設不再有遲到的數據到達。

用法:

withWatermark(x, eventTime, delayThreshold)

## S4 method for signature 'SparkDataFrame,character,character'
withWatermark(x, eventTime, delayThreshold)

參數:

  • x 流式 SparkDataFrame
  • eventTime 一個字符串,指定包含行的事件時間的列的名稱。
  • delayThreshold 一個字符串,指定等待數據延遲到達的最小延遲,相對於以間隔形式處理的最新記錄(例如“1分鍾”或“5小時”)。注意:這不應該是負麵的。

細節:

Spark 將出於多種目的使用此水印:

  • 知道何時可以完成給定的時間窗口聚合,從而可以在使用不允許更新的輸出模式時發出。

  • 為了最小化我們需要為on-going 聚合保留的狀態量。

當前水印是通過查看查詢中所有分區中看到的 MAX(eventTime) 減去用戶指定的 delayThreshold 來計算的。由於跨分區協調此值的成本,實際使用的水印隻能保證至少比實際事件時間晚delayThreshold。在某些情況下,我們可能仍會處理晚於 delayThreshold 的記錄。

返回:

一個 SparkDataFrame。

注意:

withWatermark 自 2.3.0 起

例子:

sparkR.session()
schema <- structType(structField("time", "timestamp"), structField("value", "double"))
df <- read.stream("json", path = jsonDir, schema = schema, maxFilesPerTrigger = 1)
df <- withWatermark(df, "time", "10 minutes")

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 withWatermark。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。