Save Modes:

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

实践

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.使用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")

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

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

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

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

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

相关文章:

  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-10
  • 2021-11-27
  • 2021-12-16
猜你喜欢
  • 2022-12-23
  • 2021-08-31
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2021-11-26
  • 2021-11-27
相关资源
相似解决方案