Spark--SparkSql--spark.sql.warehouse.dir使用详解

本文介绍了使用Spark SQL操作Hive数据库数据时,spark.sql.warehouse.dir参数指定数据存放位置的相关内容。包括在本地调试和集群操作Hive代码时的不同情况,如未部署好Hive时的元数据和目录创建,以及该参数在不同场景下的生效条件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景

适用于当使用spark sql操作hive数据库中的数据的时候,用该参数指定数据存放的位置

详解

使用hive需要sparksession设置支持选项,如果用户集群里,没有部署好的hive,sparksession也能够提供hive支持,在这种情况下,如果没有hive-site.xml文件,sparkcontext会自动在当前目录(即代码结构目录中),创建元数据db,并且会在spark.sql.warehouse.dir表示的位置创建一个目录,用户存放table数据,所以spark.sql.warehouse.dir是一个用户存放hive table文件的一个目录,因为是一个目录地址,难免会收到操作系统的影响,因为不同的文件系统的前缀是不一样了,为了适配性,spark鼓励在code中设置该选项,而不是在hive-site.xml中设置该选项。

当使用本地操纵调试hive代码的时候

该种方式一定会没有部署好hive啊,所以,sparkcontext会自动在当前目录(即代码结构目录中),创建元数据db,并且会在spark.sql.warehouse.dir表示的位置创建一个目录,用户存放table数据,

当在集群操纵hive代码的时候

如果没有部署好的hive,spark确实是会使用内置的hive,但是spark会将所有的元信息都放到spark_home/bin 目录下。此时就算配置了spark.sql.warehouse.dir也不会起作用。

该种情况下,只有在部署好的hive情况下,使用spark.sql.warehouse.dir才会生效。而且spark会默认覆盖hive的配置项

总结:

spark.sql.warehouse.dir指定的就是数据的存放位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值