spark hive数据导出到mysql 以及和 mysql进行表连接查询

数据准备

data/department.txt

1	技术部
2	运营部
3	市场部
4	财务部

data/employee.txt

1	1	方海亮	30
2	1	何胜强	35
3	1	林洪敏	32
4	2	丁泽林	27
5	2	李元元	25
6	3	王小飞	28
7	4	刘亦亭	31

bin/spark-sql

create database if not exists hadoop14;
use hadoop14;
create table department (
id int, name string
)
row format delimited fields terminated by '\t';
;
create table employee (
id int, department int, name string, age int
)
row format delimited fields terminated by '\t';
;
load data local inpath 'data/department.txt' into table department;
load data local inpath 'data/employee.txt' into table employee;

mysql连接准备工作

    val properties = new Properties()
    properties.put("user","hive_test")
    properties.put("password", "123456")
    val connectUrl = "jdbc:mysql://mustafa-PC:3306/hive_test"
    val targetTable = "department"

hive保存到mysql

    spark
      .read
      .table("hadoop14.department")
      .write
      .mode(SaveMode.Overwrite)
      .jdbc(connectUrl, targetTable, properties)

hive和mysql表连接

    val df: DataFrame = spark.read.jdbc(connectUrl, targetTable, properties)
    df.createOrReplaceTempView("department")

    var resultDf = spark.sql("select e.name as employee_name, e.age as employee_age, d.name as department_name from hadoop14.employee e join department d on e.department = d.id")

保存操作结果

resultDf.cache()
resultDf.write.mode(SaveMode.Overwrite).saveAsTable("hadoop14.employee_result")
    resultDf.write.format("json").format("parquet").mode(SaveMode.Overwrite).save("/user/mustafa/employee_result2")

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanghailiang2016

扔个包子砸我一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值