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


R SparkR write.stream用法及代码示例


说明:

数据源由source 和一组选项 (...) 指定。如果不指定source,则使用spark.sql.sources.default配置的默认数据源。

用法:

write.stream(df, source = NULL, outputMode = NULL, ...)

## S4 method for signature 'SparkDataFrame'
write.stream(
  df,
  source = NULL,
  outputMode = NULL,
  partitionBy = NULL,
  trigger.processingTime = NULL,
  trigger.once = NULL,
  ...
)

参数:

  • df 流式 SparkDataFrame。
  • source 外部数据源的名称。
  • outputMode 'append', 'complete', 'update' 之一。
  • ... 额外的外部数据源特定的命名选项。
  • partitionBy 用于在文件系统上对输出进行分区的名称或列名称列表。如果指定,则输出布局在文件系统上,类似于 Hive 的分区方案。
  • trigger.processingTime 作为字符串的处理时间间隔,例如'5 seconds','1 minute'。这是一个触发器,它根据处理时间定期运行查询。如果值为'0 seconds',查询将尽可能快地运行,这是默认值。只能设置一个触发器。
  • trigger.once 一个逻辑,必须设置为 TRUE 。这是一个触发器,它只处理流式查询中的一批数据,然后终止查询。只能设置一个触发器。

细节:

此外,outputMode 指定流式 SparkDataFrame 的数据如何写入输出数据源。共有三种模式:

  • append:只会写出流式 SparkDataFrame 中的新行。此输出模式只能用于不包含任何聚合的查询。

  • 完成:每次有一些更新时,流式 SparkDataFrame 中的所有行都将被写出。此输出模式只能用于包含聚合的查询。

  • update:每次有一些更新时,只会写出流式 SparkDataFrame 中更新的行。如果查询不包含聚合,则相当于append 模式。

注意:

从 2.2.0 开始的 write.stream

实验

例子:

sparkR.session()
df <- read.stream("socket", host = "localhost", port = 9999)
isStreaming(df)
wordCounts <- count(group_by(df, "value"))

# console
q <- write.stream(wordCounts, "console", outputMode = "complete")
# text stream
q <- write.stream(df, "text", path = "/home/user/out", checkpointLocation = "/home/user/cp",
                  partitionBy = c("year", "month"), trigger.processingTime = "30 seconds")
# memory stream
q <- write.stream(wordCounts, "memory", queryName = "outs", outputMode = "complete")
head(sql("SELECT * from outs"))
queryName(q)

stopQuery(q)

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 Write the streaming SparkDataFrame to a data source.。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。