十五.Spark SQL之Save Modes几种存储形式

Save Modes:

    Save操作可以选择使用SaveMode,它指定如果存在的话如何处理现有数据。重要的是要认识到这些保存模式不使用任何锁定,也不是原子的。此外,当执行覆盖时,数据将在写入新数据之前被删除。
十五.Spark SQL之Save Modes几种存储形式_第1张图片

实践

1.读取一个json文件进行测试:

scala> val df = spark.read.format("json").load("file:///root/data/json_schema_infer.json")
df: org.apache.spark.sql.DataFrame = [age: bigint, gender: string ... 2 more fields]
scala> df.show

显示结果:
十五.Spark SQL之Save Modes几种存储形式_第2张图片
2.使用overwrite方式以parquet形式写出去:

df.select("name").write.format("parquet").mode("overwrite").save("file:///root/data/overwrite")

在目录中就会生成相应的文件,再次执行还会生成,但是生成的时间变了,因为覆盖了以前生成的文件

3.使用append方式以parquet形式写出去:

scala> df.select("name").write.format("parquet").mode("append").save("file:///root/data/overwrite")

不会覆盖之前的文件,会生成新的文件:

在这里插入图片描述

4.使用ignore方式以parquet形式写出去:

scala> df.select("name").write.format("parquet").mode("ignore").save("file:///root/data/overwrite")

在这个目录下如果有这种类型的文件就不会生成,如果没有就会创建.

你可能感兴趣的:(Spark,SQL)