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


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.。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。