Spark 结构化流中 writeStream 的可用输出格式有哪些
What are the available output formats for writeStream in Spark structured streaming
考虑一个通用的 writeStream
调用 - 具有典型的 "console" 输出格式:
out.writeStream
.outputMode("complete")
.format("console")
.start()
有哪些选择?我实际上注意到 default 是 parquet
:
在DataStreamWriter
中:
/**
* Specifies the underlying output data source.
*
* @since 2.0.0
*/
def format(source: String): DataStreamWriter[T] = {
this.source = source
this
}
private var source: String = df.sparkSession.sessionState.conf.defaultDataSourceName
在SQLConf
中:
def defaultDataSourceName: String = getConf(DEFAULT_DATA_SOURCE_NAME)
val DEFAULT_DATA_SOURCE_NAME = buildConf("spark.sql.sources.default")
.doc("The default data source to use in input/output.")
.stringConf
.createWithDefault("parquet")
但是,如何指定 parquet 文件的 path?支持哪些其他格式以及它们有哪些选项have/require?
好像可以用option("path",path)
:
这是相同的官方 spark 文档:https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#output-sinks
从 spark 2.4.1 开始,开箱即用地支持五种格式:
- 文件接收器
- Kafka 接收器
- Foreach 接收器
- 控制台接收器
- 内存槽
除此之外,还可以通过扩展 Spark 的 Sink
API 来实现她的自定义接收器:https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/Sink.scala
考虑一个通用的 writeStream
调用 - 具有典型的 "console" 输出格式:
out.writeStream
.outputMode("complete")
.format("console")
.start()
有哪些选择?我实际上注意到 default 是 parquet
:
在DataStreamWriter
中:
/**
* Specifies the underlying output data source.
*
* @since 2.0.0
*/
def format(source: String): DataStreamWriter[T] = {
this.source = source
this
}
private var source: String = df.sparkSession.sessionState.conf.defaultDataSourceName
在SQLConf
中:
def defaultDataSourceName: String = getConf(DEFAULT_DATA_SOURCE_NAME)
val DEFAULT_DATA_SOURCE_NAME = buildConf("spark.sql.sources.default")
.doc("The default data source to use in input/output.")
.stringConf
.createWithDefault("parquet")
但是,如何指定 parquet 文件的 path?支持哪些其他格式以及它们有哪些选项have/require?
好像可以用option("path",path)
:
这是相同的官方 spark 文档:https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#output-sinks
从 spark 2.4.1 开始,开箱即用地支持五种格式:
- 文件接收器
- Kafka 接收器
- Foreach 接收器
- 控制台接收器
- 内存槽
除此之外,还可以通过扩展 Spark 的 Sink
API 来实现她的自定义接收器:https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/Sink.scala