文章目录
零、本讲学习目标
- 掌握如何读取Hive表中的数据
- 掌握如何将数据写入到Hive表
一、Spark SQL支持读写Hive
- Spark SQL还支持读取和写入存储在Apache Hive中的数据。然而,由于Hive有大量依赖项,这些依赖项不包括在默认的Spark发行版中,如果在classpath上配置了这些Hive依赖项,Spark就会自动加载它们。需要注意的是,这些Hive依赖项必须出现在所有Worker节点上,因为它们需要访问Hive序列化和反序列化库(SerDes),以便访问存储在Hive中的数据。
- 在使用Hive时,必须实例化一个支持Hive的SparkSession对象。若系统中没有部署Hive,则仍然可以启用Hive支持(Spark SQL充当Hive查询引擎)。Spark对Hive的支持包括连接到持久化的Hive元数据库、Hive SerDe、Hive用户定义函数、HiveQL等。如果没有配置hive-site.xml文件,Spark应用程序启动时,就会自动在当前目录中创建Derby元数据库metastore_db,并创建一个由
spark.sql.warehouse.dir
指定的数据仓库目录(若不指定,则默认启动Spark应用程序当前目录中的spark-warehouse
目录)。需要注意的是,从Spark2.0.0版本开始,hive-site.xml
中的hive.metast