2

我正在尝试将新的流式写入功能与 spark 2.0.1-SNAPSHOT 一起使用。实际上支持哪个输出数据源来持久化结果?我能够在控制台上显示输出,如下所示:

Dataset<Event> testData = sqlContext
    .readStream()
    .schema(schema)
    .format("json")
    .load("s3://......")
    .as(encoder);

Dataset<Row> result = testData.filter("eventType = 'playerLoad'")
    .groupBy(col("country"), window(col("timestamp"), "10 minutes"))
    .agg(sum("startupTime").alias("tot"));

result.writeStream()  
      .outputMode(OutputMode.Complete())
      .format("console")
      .start()
      .awaitTermination();

但是如果我尝试将 .format("console") 更改为 "json" 或 "jdbc" 我会收到消息:数据源 xxx 不支持流式写入。

4

1 回答 1

0

目前(截至 2016 年 7 月 9 日)有四个可用的流媒体接收器:

  • ConsoleSinkconsole格式。
  • FileStreamSinkparquet格式。
  • ForeachSink用于foreach运算符。
  • MemorySink作为memory.

您可以创建自己的实现StreamSinkProvider的流格式。

于 2016-07-10T12:30:43.720 回答