全国职业技能大赛(大数据技术赛项),任务B离线数据处理

本题源于2023年全国职业技能大赛(大数据技术赛项)第九套任务书 子任务一 第一小题

想要了解更多,可联系作者

625338393  v请备注来意,模块A环境搭建,模块B离线数据处理,模块E数据可视化

子任务一:数据抽取

题目:

环境说明:用于区分每套任务书数据,我在Hive中建库,此库Taskbook09_ods对应任务书中的ods库,其他同理

前期任务准备

val conf = new SparkConf().setMaster("local").setAppName("a")
    val spark = SparkSession.builder().config(conf).enableHiveSupport().getOrCreate()
    // 开启动态分区
    spark.conf.set("hive.exec.dynamic.partition.mode", "nonstrict")
    // 关闭日志打印
    spark.sparkContext.setLogLevel("OFF")

分析任务书,抽取MySQL库中的EnvironmentData的增量数据进入ods库中的environmentdata表

// 定义MySQL库数据,读取MySQL数据库中enviromentdata表 
val df = spark.read
      .format("jdbc")
      .option("driver", "com.mysql.jdbc.Driver")
      .option("url", "jdbc:mysql://master:3306/shtd_industry")
      .option("user", "root")
      .option("password", "1234")
      .option("dbtable", "environmentdata")
      .load()
// 创建临时表
df.createTempView("ods")
// 查询临时表数据
 val dataframe = spark.sql(
      """
        |select * from ods
        |""".stripMargin
    )
// 展示数据
    dataframe.show()
// 添加分区字段,分区字段为前一日
    val df2 = dataframe.withColumn("etldate", date_format(date_sub(current_date, 1), "yyyyMMdd"))
    df2.show()
// 写入ods.environmentdata
    df2.write.mode("append")
      .partitionBy("etldate")
      .saveAsTable("taskbook09_ods.environmentdata")
// 打印分区字段
    spark.sql("show partitions taskbook09_ods.environmentdata ").show()

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值