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

这篇具有很好参考价值的文章主要介绍了编写 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项目

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

2.安装scala插件

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

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

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

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版本的动态分区,仅供参考

package com.test

import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession

import java.text.SimpleDateFormat
import java.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读取mysql
    val 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集群启动起来

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

总结

本文仅仅简单介绍了操作步骤,很多经验都来自于b站和博客上的大佬,以及身边的同学和老师转化而来的,赶在2022年最后一天做出总结,希望对大家也有帮助文章来源地址https://www.toymoban.com/news/detail-412880.html

到了这里,关于编写 Scala 工程代码,将 MySQL 库中的表增量抽取到 Hive库中对应表中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java通过JDBC连接mysql8.0数据库,并对数据库中的表进行增删改查操作

    目录 一、JDBC简介 二、添加依赖 三、JDBC操作数据库的步骤 四、JDBC操作数据库——增删改查 (一)新增数据 (二)删除数据 (三)修改数据 (四)查询数据 (五)多表连接查询         Java数据库连接,(Java Database Connectivity,简称JDBC)是java语言中用来规范客户端程序如何来访问数

    2024年02月03日
    浏览(59)
  • FPGA实现 NIC 10G 网卡,纯verilog代码编写,提供工程源码和技术支持

    FPGA实现 NIC 10G 网卡,纯verilog代码编写,提供3套工程源码和技术支持 网络接口控制器(NIC)是计算机与网络进行交互的网关。NIC构成了软件协议栈和网络之间的桥梁,该桥梁的功能定义了网络接口。网络接口的功能以及这些功能的实现都在迅速发展。这些变化是由提高线速和

    2024年02月03日
    浏览(51)
  • FPGA实现 TCP/IP 协议栈 纯VHDL代码编写 提供数据回环工程源码和技术支持

    FPGA实现 TCP/IP 协议栈 服务器 纯VHDL代码编写 提供4套vivado工程源码和技术支持 没玩过TCP网络通信都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。目前网上fpga实现udp协议的源码满天飞,我这里也有不少,但用FPGA纯源码实现TCP的项目却很少,能上

    2024年02月16日
    浏览(38)
  • Scala编写九九乘法表

    一、idea里面new一个Scala Class,点击Object,输入名称,创建即可 注意:编写scala之前要下载scala,并添加scala框架支持,才可以编写scala 二、得出结果  这就是用scala方法编写的九九乘法表

    2024年02月13日
    浏览(28)
  • FPGA实现jpeg图片解码RGB 纯verilog代码编写 提供基于zynq得工程源码和技术支持

    jpg是一种压缩的图片格式,之所以压缩是为了减小图片所占空间,jpg压缩原理这里不罗嗦,可以自行百度或者b站,大佬讲的比我好,jpg解压缩就是逆向过程,用opencv啥的解压缩就是一句话的事儿,但对于fpga硬件来说就是大型工程了。 本设计使用zynq7100位平台,将jpg图片的c语

    2024年02月07日
    浏览(49)
  • FPGA实现 TCP/IP 协议栈 纯VHDL代码编写 提供3套vivado工程源码和技术支持

    FPGA实现 TCP/IP 协议栈 服务器 纯VHDL代码编写 提供4套vivado工程源码和技术支持 没玩过TCP网络通信都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。目前网上fpga实现udp协议的源码满天飞,我这里也有不少,但用FPGA纯源码实现TCP的项目却很少,能上

    2024年02月04日
    浏览(69)
  • Apache HttpClient库编写的Scala程序

    Apache HttpClient库编写的Scala下载器程序,用于下载图片。代码如下: 程序首先导入所需的Apache HttpClient库和HttpHost,HttpClient和HttpHead类。然后,程序创建一个名为 WeiboImageDownloader 的类,并在其中定义一个名为 main 的方法。在 main 方法中,程序首先定义服务器的主机名和端口号,

    2024年02月06日
    浏览(32)
  • Scala语言使用Selenium库编写网络爬虫

    目录 一、引言 二、环境准备 三、爬虫程序设计 1、导入必要的库和包 2、启动浏览器驱动程序 3、抓取网页内容 4. 提取特定信息 5. 数据存储和处理 四、优化和扩展 五、结语 网络爬虫是一种自动抓取互联网信息的程序。它们按照一定的规则和算法,遍历网页并提取所需的信

    2024年02月03日
    浏览(39)
  • C //练习 6-5 编写函数undef,它将从由lookup和install维护的表中删除一个变量及其定义。

    练习 6-5 编写函数undef,它将从由lookup和install维护的表中删除一个变量及其定义。 注意:代码在win32控制台运行,在不同的IDE环境下,有部分可能需要变更。 IDE工具:Visual Studio 2010   代码块:

    2024年01月21日
    浏览(39)
  • FPGA实现 RDMA NIC 10G UDP协议栈网卡,纯verilog代码编写,提供工程源码和技术支持

    FPGA实现 NIC 10G 网卡,纯verilog代码编写,提供3套工程源码和技术支持 网络接口控制器(NIC)是计算机与网络进行交互的网关。NIC构成了软件协议栈和网络之间的桥梁,该桥梁的功能定义了网络接口。网络接口的功能以及这些功能的实现都在迅速发展。这些变化是由提高线速和

    2024年02月10日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包