jav*_*dba 5 scala apache-spark spark-streaming spark-structured-streaming
考虑一个通用writeStream调用 - 具有典型的“控制台”输出格式:
out.writeStream
.outputMode("complete")
.format("console")
.start()
Run Code Online (Sandbox Code Playgroud)
有哪些替代方案?我实际上注意到默认值是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
Run Code Online (Sandbox Code Playgroud)
在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")
Run Code Online (Sandbox Code Playgroud)
那么parquet 文件的路径是如何指定的呢?支持哪些其他格式以及它们有/需要哪些选项?
这是官方 Spark 文档:https://spark.apache.org/docs/latest/structed-streaming-programming-guide.html#output-sinks
从 Spark 2.4.1 开始,开箱即用地支持五种格式:
除此之外,还可以通过扩展SinkSpark 的 API 来实现她的自定义接收器: https: //github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql /execution/streaming/Sink.scala
| 归档时间: |
|
| 查看次数: |
20269 次 |
| 最近记录: |