首页 > 其他分享 >从Hive中使用HQL语句创建DataFrame--常用方式

从Hive中使用HQL语句创建DataFrame--常用方式

时间:2022-08-27 12:34:01浏览次数:63  
标签:server2 -- hive metastore HQL DataFrame mysql Hive thrift

  1. 默认情况下SparkSession不支持读取Hive中的数据,也不支持操作HQL语法,
    如果要读取Hive中的数据,需要开启Hive的支持,
    构建sparkSession的时候调用一个函数enableHiveSupport()
    val sparkConf = new SparkConf().setMaster("local[2]").setAppName("demo")
    val session = SparkSession.builder().config(sparkConf).enableHiveSupport().getOrCreate()

  1. 引入spark连接操作hive以及MySQL驱动依赖
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-hive_2.11</artifactId>
    <version>2.3.1</version>
</dependency>
  1. sparksql操作hive需要通过连接Hive的元数据操作,需要将hive配置了元数据库的配置文件hive-site.xml文件放到项目的resources路径下
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://node1:3306/hive_metastore?serverTimezone=UTC&amp;createDatabaseIfNotExist=true</value>
	  <description>JDBC connect string for a JDBC metastore</description>
	</property>

	<property>
	  <name>javax.jdo.option.ConnectionDriverName</name>
	  <value>com.mysql.cj.jdbc.Driver</value>
	  <description>Driver class name for a JDBC metastore</description>
	</property>

	<property>
	  <name>javax.jdo.option.ConnectionUserName</name>
	  <value>root</value>
	  <description>username to use against metastore database</description>
	</property>

	<property>
	  <name>javax.jdo.option.ConnectionPassword</name>
	  <value>Jsq123456...</value>
	  <description>password to use against metastore database</description>
	</property>
	<property> 
	  <name>hive.metastore.warehouse.dir</name> 
	  <value>/user/hive/warehouse</value> 
	  <description>location of default database for the warehouse</description> 
 	</property>
	<property> 
	  <name>hive.cli.print.header</name> 
	  <value>true</value> 
 	</property> 
	<property> 
	  <name>hive.cli.print.current.db</name> 
	  <value>true</value> 
	</property>
	

	<property> 
  	  <name>hive.server2.authentication</name> 
 	  <value>NONE</value> 
	</property> 
	<property> 
	  <name>hive.server2.thrift.bind.host</name> 
	  <value>node1</value> 
 	</property> 
	<property> 
	  <name>hive.server2.thrift.port</name> 
	  <value>10000</value> 
	  <description>TCP port number to listen on, default 10000</description> 
	</property> 
	<property> 
	  <name>hive.server2.thrift.http.port</name> 
	  <value>10001</value> 
	</property> 
	<property> 
	  <name>hive.server2.thrift.client.user</name> 
	  <value>root</value> 
	  <description>Username to use against thrift client</description> 
	</property> 
	<property> 
	  <name>hive.server2.thrift.client.password</name> 
	  <value>root</value> 
	  <description>Password to use against thrift client</description> 
	</property>
</configuration>

标签:server2,--,hive,metastore,HQL,DataFrame,mysql,Hive,thrift
From: https://www.cnblogs.com/jsqup/p/16630341.html

相关文章

  • CentOS7升级内核
    1、查看当前内核版本$uname-r3.10.0-1160.25.1.el7.x86_64$uname-aLinuxlocalhost.localdomain3.10.0-1160.25.1.el7.x86_64#1SMPWedApr2821:49:45UTC2......
  • Lambda表达式
    作用简化匿名内部类的代码写法格式(匿名内部类被重写方法的形参列表)->{被重写方法的方法体代码}注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式......
  • CAD二次开发 求曲线交点的方法
    AutoCAD的IntersectWith方法EntityentityPointer:与该实体相交的另一个实体IntersectintersectType:相交的类型,为一枚举QPoint3dCollectionpoints:获取所有相交的交点......
  • 日志打印输出到控制台以及文件 Spring boot application.yml https://www.cnblogs
    转自:https://www.cnblogs.com/izyh/p/15945950.htmlyml文件中添加配置:##########日志配置-START##########logging:config:classpath:logback-spring.......
  • sparkcore案例四:统计每个省份的用户访问量
    题目:/***统计每个省份的用户访问量,最终要求将不同省份用户访问量存放到不同的分区中分区存放规则如下*省份是以包含山0*如果省份包含海1*其他......
  • Java10-接口,多态
    第一章接口1.1概述接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK7......
  • 6=DAY=
    TCP建立连接时通过三次握手可以有效地避免历史错误连接信息的建立,减少通信双方不必要的资源消耗,三次握手能够帮助通信双方获取初始化序列号,它们能够保证数据包传输的不重不......
  • 褶积方法制作合成地震记录c++
    地震褶积方法制作合成地震记录包括,(1)读取相模型,设置每种相的密度和速度,(2)计算反射系数,添加噪音,(3)设置子波,(4)进行褶积计算。具体的代码如下voidsyntheticSeis(conststring&......
  • 西门子SmartPLC自由口通讯封装兼容Modbus_可自定义报文格式
    最近一直在用西门子SmartPLC,由于项目需求自定义协议,为了数据的准确性用了CRC校验,模块兼容Modbus_RTU,自定义报文格式。此模块主要用的是SmartPLC,指针类型,通过寻......
  • 单机版zookeeper的安装与配置
    准备工作,安装JDK:https://www.cnblogs.com/javasl/p/11154205.html1、解压文件到指定目录tar-zxfzookeeper-3.4.6.tar.gz-C/usr/local/myroom2、配置环境变量,将下......