说明
如果保存路径已经存在,再次保存时,会报错,可以通过设置 模式,让其他覆盖、追加
通过 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()
}
}