spark3.0教程-SparkSQL:mode()、SaveMode 保存模式

说明

如果保存路径已经存在,再次保存时,会报错,可以通过设置 模式,让其他覆盖、追加

通过 DataFrame 的 .write.mode(值) 设置

值在模式枚举类:SaveMode 中,有以下值:

  • Append:如果文件存在,就在追加到后面
  • Overwrite:如果文件存在,就覆盖
  • ErrorIfExists:如果存在就报错,默认
  • Ignore:文件存在就不保存

例子

保存时,如果存在,就覆盖

准备数据参见 链接

package read

import org.apache.spark.SparkConf
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}

object Std_write_mode {
  def main(args: Array[String]): Unit = {
    val sc = new SparkConf().setMaster("local[*]").setAppName("std")
    val spark = SparkSession.builder().config(sc).getOrCreate()

    val df: DataFrame = spark.read.json("cdz.json") //加载 json文件

    val res: DataFrame = df.select("id","ele_num")

    res.write
      .mode(SaveMode.Overwrite) // 保存模式:覆盖
      .json("res_json")
    spark.close()
  }
}

原文出处:/show_1IX4KKvtHCSw.html