0


编写 Scala 工程代码,将 MySQL 库中的表增量抽取到 Hive库中对应表中

提示:本文采用IDEA编写代码

文章目录


操作步骤:

一、在linux上

  1. 搭建好spark,推荐一篇较好的文章:spark3.3.0安装&部署过程。

注:如果需要运行yarn模式,在spark-env.sh文件末尾添加:

export YARN_CONF_DIR=/opt/hadoop-3.1.3/etc/hadoop
export HADOOP_CONF_DIR=/opt/hadoop-3.1.3/etc/hadoop
  1. 搭建完spark集群后,在spark的jars目录下放入mysql驱动jar包。
  2. 在spark的conf目录下放入hive-site.xml文件。

二、在IDEA上

1.创建一个maven项目

在这里插入图片描述

2.安装scala插件

在这里插入图片描述

3.在项目结构的全局库导入scala至项目

在这里插入图片描述

4.在pom文件导入以下两个依赖

<dependencies><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.3.1</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_2.12</artifactId><version>3.3.1</version></dependency></dependencies>

5.编写代码

涉及到hive3.x版本的动态分区,仅供参考

packagecom.testimportorg.apache.spark.SparkConf
importorg.apache.spark.sql.SparkSession

importjava.text.SimpleDateFormat
importjava.util.{Calendar, Properties}object lx1 {def main(args: Array[String]):Unit={//    建立和spark框架的连接及定义业务名称val conf =new SparkConf().setMaster("local[*]").setAppName("数据抽取")val spark = SparkSession.builder().enableHiveSupport().config(conf).getOrCreate()//spark读取mysqlval df = spark.read
      .format("jdbc").option("url","jdbc:mysql://master:3306/test?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.cj.jdbc.Driver").option("user","root").option("password","123").option("dbtable","orders").load()
    df.createOrReplaceTempView("v_orders")//    获取时间val day = Calendar.getInstance()
    day.add(Calendar.DATE,-2)val sdf =new SimpleDateFormat("yyyy-MM-dd")val yesDate = sdf.format(day.getTime)//开启动态分区功能
    spark.sqlContext.setConf("hive.exec.dynamic.partition.mode","nonstrict")//把读取的数据写入hive
    spark.sql("insert into table test.d_p_t2 "+"partition(custkey) select orderkey, orderdate,custkey "+" from v_orders where orderdate='"+ yesDate +"'")
    spark.stop()}}

6.将写好的代码打成jar包

推荐一篇较好的文章:IDEA 导出jar包

7.将jar包放入linux里执行

注意:如果运行yarn模式,要将hadoop集群启动起来

在这里插入图片描述
在这里插入图片描述

总结

本文仅仅简单介绍了操作步骤,很多经验都来自于b站和博客上的大佬,以及身边的同学和老师转化而来的,赶在2022年最后一天做出总结,希望对大家也有帮助

标签: hive scala mysql

本文转载自: https://blog.csdn.net/m0_70673163/article/details/128505285
版权归原作者 不甘平钒 所有, 如有侵权,请联系我们删除。

“编写 Scala 工程代码,将 MySQL 库中的表增量抽取到 Hive库中对应表中”的评论:

还没有评论