我正在尝试使用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不支持流写入。
目前(截至2016年7月9日)有四种可用的流接收器:
-
ConsoleSink
用于console
格式。 -
FileStreamSink
为parquet
格式。 -
ForeachSink
用于foreach
操作符。 -
MemorySink
asmemory
.
你可以创建自己的流格式实现StreamSinkProvider