补充-全量抽取、增量抽取、覆盖写入和增量写入

所谓全量抽取,指的是将mysql中整个表的数据都读取出来,写入Hive表中。写入的时候,可以覆盖写入(overwrite模式),也可以是增量追加(append模式)。

下面的例子中,实现了mysql数据的全量抽取、增量抽取和Hive表的覆盖写入、增量写入。

1) 在Mysql中创建一个数据表mytb,并插入一些初始数据:

# 创建表
create table olist.mytb(
    mid int,
    mdate date
);

# 插入初始数据
insert into olist.mytb
values
(1,"2022-04-05"),
(2,"2022-04-06");

2) 将mytb表中初始的数据全部抽取(全量抽取)并加载到Hive表中(覆盖写入)。实现代码如下:

import org.apache.spark.sql.SparkSession

object EtlDemo {
  def main(args: Array[String]): Unit = {
    // 创建SparkSession实例
    val spark = SparkSession.builder()
      .master("local[*]")
      .appName("ETL Demo")
      .config("hive.exec.dynamic.partition", "true") //开启动态分区,默认是false
      .config("hive.exec.dynamic.partition.mode", "nonstrict") //允许所有分区都是动态的,否则必 ......
          

......

抱歉,只有登录会员才可浏览!会员登录


《Spark原理深入与编程实战》