Apache Hive是Hadoop上的SQL引擎,Spark SQL编译时可以包含Hive支持,也可以不包含。包含Hive支持的Spark SQL可以支持Hive表访问、UDF(用户自定义函数)以及 Hive 查询语言(HiveQL/HQL)等。需要强调的一点是,如果要在Spark SQL中包含Hive的库,并不需要事先安装Hive。一般来说,最好还是在编译Spark SQL时引入Hive支持,这样就可以使用这些特性了。如果你下载的是二进制版本的 Spark,它应该已经在编译时添加了 Hive 支持。
若要把Spark SQL连接到一个部署好的Hive上,你必须把hive-site.xml复制到 Spark的配置文件目录中($SPARK_HOME/conf)。即使没有部署好Hive,Spark SQL也可以运行。需要注意的是,如果你没有部署好Hive,Spark SQL会在当前的工作目录中创建出自己的Hive 元数据仓库,叫作 metastore_db。此外,如果你尝试使用 HiveQL 中的 CREATE TABLE (并非 CREATE EXTERNAL TABLE)语句来创建表,这些表会被放在你默认的文件系统中的 /user/hive/warehouse 目录中(如果你的 classpath 中有配好的 hdfs-site.xml,默认的文件系统就是 HDFS,否则就是本地文件系统)。

内嵌Hive应用

如果要使用内嵌的Hive,什么都不用做,直接用就可以了。
可以通过添加参数初次指定数据仓库地址:–conf spark.sql.warehouse.dir=hdfs://hadoop102/spark-wearhouse
注意:如果你使用的是内部的Hive,在Spark2.0之后,spark.sql.warehouse.dir用于指定数据仓库的地址,如果你需要是用HDFS作为路径,那么需要将core-site.xml和hdfs-site.xml 加入到Spark conf目录,否则只会创建master节点上的warehouse目录,查询时会出现文件找不到的问题,这是需要使用HDFS,则需要将metastore删除,重启集群。

外部Hive应用

如果想连接外部已经部署好的Hive,需要通过以下几个步骤。

  1. 将Hive中的hive-site.xml拷贝或者软连接到Spark安装目录下的conf目录下。

  2. 打开spark shell,注意带上访问Hive元数据库的JDBC客户端

$ bin/spark-shell  --jars mysql-connector-java-5.1.27-bin.jar

运行Spark SQL CLI

Spark SQL CLI可以很方便的在本地运行Hive元数据服务以及从命令行执行查询任务。在Spark目录下执行如下命令启动Spark SQL CLI:

./bin/spark-sql

代码中使用Hive

  1. 添加依赖:

<dependency><groupId>org.apache.sparkgroupId><artifactId>spark-hive_2.11artifactId><version>2.1.1version>dependency>

<dependency><groupId>org.apache.hivegroupId><artifactId>hive-execartifactId><version>1.2.1version>dependency>
  1. 创建SparkSession时需要添加hive支持

val warehouseLocation: String = new File("spark-warehouse").getAbsolutePathval spark = SparkSession.builder().appName("Spark Hive Example").config("spark.sql.warehouse.dir", warehouseLocation).enableHiveSupport().getOrCreate()

注意:蓝色部分为使用内置Hive需要指定一个Hive仓库地址。若使用的是外部Hive,则需要将hive-site.xml添加到ClassPath下


简书:https://www.jianshu.com/u/0278602aea1d
CSDN:https://blog.csdn.net/u012387141

spark-sql如何删除表_SparkSQL数据源之Hive数据库相关推荐

  1. Spark SQL之External DataSource外部数据源(二)源代码分析

    上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...

  2. 实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作

    转载自  实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作 供稿 | eBay ADI-Carmel Team 作者 | 金澜涛 编辑 | 顾欣怡 本文7309字,预计阅读时 ...

  3. 用一条sql语句删除表中所相同记录

    用一条sql语句删除表中所相同记录如下一.具有主键的情况 a.具有唯一性的字段id(为唯一主键) delete table where id not in ( select max(id) from ...

  4. SQL server删除表信息代码

    SQL server删除表信息代码: 1.delete删除: delete * from table--只是删除了表中的内容,并没有把表删除. 2.drop删除: drop table 表名--把整个 ...

  5. SQL Server删除表

    DROP TABLE 语句从数据库中删除一个或多个表. 在上面语法中, 首先, database_name 指定要删除的表的名称. 其次,指定创建表的数据库的名称以及表所属的模式的名称.数据库名称是可 ...

  6. Sql语句——删除表数据drop、truncate和delete的用法

      一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test    2.truncate tabl ...

  7. mysql重复数据只取一条数据_My sql 中删除表中重复记录?只保留一条

    匿名用户 1级 2018-08-20 回答 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 sel ...

  8. SQL Server删除表及删除表中数据的方法

    SQL Server中如何删除表,如何删除表中的数据. 删除表的T-SQL语句为: drop table <表名> drop是丢弃的意思,drop table表示将一个表彻底删除掉. 删除 ...

  9. sql语句-删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称 eg: drop table course 2.truncate table 表名称 eg: truncate table course 3.de ...

最新文章

  1. java基础入门传智播客 源码_Java-_2020年版Java零基础视频教程(Java 0基础,Java初学入门)魔鬼讲师老杜出品...
  2. IDP申请直到软件上架流程 - iOS
  3. (0097)iOS开发之应用间的分享系列(2)
  4. WIN10 OpenGL GLFW+GLAD 开发环境搭建
  5. MFC创建及读写ini文件操作(转)
  6. 软件项目管理概览----版本控制
  7. 栈和队列之用java实现栈
  8. arcgis字段计算器--随机数
  9. Qt工作笔记-QTabWidget插入widget(重要的是编程思想)
  10. python中多条件语句_Python中的带条件语句
  11. 在Laravel中使用自己的类库三种方式
  12. C++最小函数模板demo
  13. [UE4]复制引起的重复对象
  14. Java GC种类以及触发时机
  15. 不同cpu服务器虚拟迁移,虚拟机迁移时,提示CPU不兼容问题求解,谢谢!
  16. unity3d手游破解(一)
  17. D. Lizard Era: Beginning
  18. Hyper-V 的用途与安装
  19. linux系统start x,linux的startx问题
  20. 纯净ROM如何制作?手把手教你一键精简内置推广

热门文章

  1. 【深度学习】基于Keras的手写体识别
  2. latex Label ‘ ‘ multiply defined
  3. C语言程序设计:现代方法 中文高清PDF版下载
  4. 广工十四届校赛 count 矩阵快速幂
  5. webpack+ES6+Sass搭建多页面应用
  6. LeetCode344反转字符串
  7. QObject类 moc处理后代码
  8. (转载) 标准C中的字符串操作函数
  9. 如何使用本地账户完整安装 SharePoint Server
  10. [转] Official Microsoft Team Blogs / Microsoft Blogs