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

Save Modes:

    Save操作可以选择使用SaveMode,它指定如果存在的话如何处理现有数据。重要的是要认识到这些保存模式不使用任何锁定,也不是原子的。此外,当执行覆盖时,数据将在写入新数据之前被删除。
在这里插入图片描述

实践

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

显示结果:
在这里插入图片描述
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")

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值