当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。