创建Mysql数据库

CREATE DATABASE spark;
USE spark;CREATE TABLE DEPT(
DEPTNO int(2) PRIMARY KEY,
DNAME VARCHAR(14),
LOC VARCHAR(13)
);INSERT INTO DEPT VALUE(10, 'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUE(20, 'RESEARCH','DALAS');
INSERT INTO DEPT VALUE(30, 'SALES','CHICAGO');
INSERT INTO DEPT VALUE(40, 'OPERATIONS','BOSTON');

创建Hive数据库

CREATE TABLE emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

准备文本数据emp.txt

1       tom     clerk   9088    1980-12-09      800.0   NULL    20
2       vincent cl      9999    1992-03-04      1000.0  300.1   30
5       sofia   salesman        8000    1996-02-22      100.0   908     20

将数据导入到hive中:
hive> load data local inpath '/home/iie4bu/data/emp.txt' overwrite into table emp;

JOIN操作

package cn.ac.iie.sparkimport org.apache.spark.sql.SparkSession/*** 使用外部数据源综合查询Hive和Mysql的表数据*/
object HiveMysqlApp {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("HiveMysqlApp").master("local[2]").getOrCreate()// 加载hive表数据val hiveDF = spark.table("emp")// 加载mysql数据val mysqlDF = spark.read.format("jdbc").option("url", "jdbc:mysql://swarm-manager:3306").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "spark.DEPT").option("user", "root").option("password", "123456").load()// JOINval resultDF = hiveDF.join(mysqlDF,hiveDF.col("deptno") === mysqlDF.col("DEPTNO"))     resultDF.select(hiveDF.col("empno"),hiveDF.col("ename"),mysqlDF.col("deptno"),mysqlDF.col("dname")).show()resultDF.show()spark.close()}
}

代码需要导入mysql驱动jars ,所以在spark-shell中执行:

SparkSQL之关联mysql和hive查询相关推荐

  1. HIVE的搭建配置及关联MySQL

    概念: Hive是由Facebook实现并开源.是基于Hadoop的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供HQL(Hive SQL)查询功能.其底层数据时存储在HDFS上.Hi ...

  2. hive快还是mysql快_HBase相对Hive查询速度快的对比

    原标题:HBase相对Hive查询速度快的对比 首先Hive的底层首先是MR,是属于批处理处理时间相对较长,不属于实时读写.在其架构上HBase和Hive有很大的区别. 架构介绍: Hive架构 –( ...

  3. 2021年大数据Hive(四):Hive查询语法

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...

  4. MySQL 数据库 分页查询/聚合查询

    引言 在本篇博客简单介绍一下分页查询以及聚合查询简单操作. 分页查询 在MySQL中,分页查询一般都是使用limit子句实现,limit子句声明如下: SELECT * FROM table LIMI ...

  5. 学习笔记Hive(五) —— Hive应用(3)—— Hive查询

    五.Hive查询 5.1.创建职工信息表 任务实现: 1.创建表dept,emp和salgrade 2.导入数据 将数据emp.txt导入到表emp #emp.txt 7369,SMITH,CLERK ...

  6. mysql 子查询概念_聊聊MySQL的子查询

    1. 背景 在之前介绍MySQL执行计划的博文中已经谈及了一些关于子查询相关的执行计划与优化.本文将重点介绍MySQL中与子查询相关的内容,设计子查询优化策略,包含半连接子查询的优化与非半连接子查询的 ...

  7. mysql跨库查询 索引_MySQL中跨库查询怎么搞?

    导读 在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询. 在MySQL中跨库查询主要分为两种情况,一种 ...

  8. 读薄《高性能MySql》(四)查询性能优化

    读薄<高性能MySql>(一)MySql基本知识 读薄<高性能MySql>(二)Scheme与数据优化 读薄<高性能MySql>(三)索引优化 读薄<高性能M ...

  9. mysql笔记03 查询性能优化

    查询性能优化 1. 为什么查询速度会慢? 1). 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减 ...

最新文章

  1. 100连接蓝牙_车机蓝牙连接常见问题说明
  2. 《剑指offer》把二叉树打印成多行
  3. 【渝粤题库】陕西师范大学180109 小学教师专业发展 作业
  4. Linux下如何自己编译源代码(制作成可以安装的.deb文件)
  5. python中的文件处理_python学习——python中的文件处理
  6. 新手android中ListView实现音乐列表
  7. python-Pandas库
  8. 大数据技术在银行业中的应用场景,主要有哪些?
  9. UCHome二次开发 规范
  10. 被老程序员压榨怎么办?我不想辞职
  11. python爬虫解决频繁访问_python爬虫防止IP被封的一些措施
  12. linux进入桌面后CPU狂转,笔记本风扇狂转+CPU调节问题
  13. Laravel 入门基础教程
  14. 卷积神经网络CNN——使用keras识别猫咪
  15. 高级数据库三:浅谈数据库事务(transaction)
  16. pandas数组(pandasSeries)的运算及案例---初学基础
  17. css3魔方3乘3每层旋转_学习做旋转魔方 (css3)
  18. 第4节 操作器和Trackball
  19. 电脑莫名多出一个管理员账户
  20. 《Adobe Illustrator CS6中文版经典教程(彩色版)》—第0课0.13节使用绘图模式

热门文章

  1. NHibernate+MySql (erro 解决方法)
  2. Android开发二 什么是Android
  3. 浅谈ASP.NET Forms验证
  4. MySQL引擎之MyISAM,InnoDB,Btree与B+tree
  5. php7.0支持调用lua脚本
  6. Redis与RabbitMQ作为消息队列的比较
  7. 修改linux文件权限命令:chmod
  8. PHP设置块注释的模板
  9. linux mkdir错误,thinkphp在linux下报mkdir()错误
  10. 51cto mysql下载_安装MySQL