spark InternalOutputModes 源码
spark InternalOutputModes 代码
文件路径:/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/streaming/InternalOutputModes.scala
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.spark.sql.catalyst.streaming
import java.util.Locale
import org.apache.spark.sql.streaming.OutputMode
/**
* Internal helper class to generate objects representing various `OutputMode`s,
*/
private[sql] object InternalOutputModes {
/**
* OutputMode in which only the new rows in the streaming DataFrame/Dataset will be
* written to the sink. This output mode can be only be used in queries that do not
* contain any aggregation.
*/
case object Append extends OutputMode
/**
* OutputMode in which all the rows in the streaming DataFrame/Dataset will be written
* to the sink every time these is some updates. This output mode can only be used in queries
* that contain aggregations.
*/
case object Complete extends OutputMode
/**
* OutputMode in which only the rows in the streaming DataFrame/Dataset that were updated will be
* written to the sink every time these is some updates. If the query doesn't contain
* aggregations, it will be equivalent to `Append` mode.
*/
case object Update extends OutputMode
def apply(outputMode: String): OutputMode = {
outputMode.toLowerCase(Locale.ROOT) match {
case "append" =>
OutputMode.Append
case "complete" =>
OutputMode.Complete
case "update" =>
OutputMode.Update
case _ =>
throw new IllegalArgumentException(s"Unknown output mode $outputMode. " +
"Accepted output modes are 'append', 'complete', 'update'")
}
}
}
相关信息
相关文章
0
赞
- 所属分类: 前端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦