国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大數(shù)據(jù)之使用Spark全量抽取MySQL的數(shù)據(jù)到Hive數(shù)據(jù)庫

這篇具有很好參考價(jià)值的文章主要介紹了大數(shù)據(jù)之使用Spark全量抽取MySQL的數(shù)據(jù)到Hive數(shù)據(jù)庫。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

文章目錄

前言

一、讀題分析

二、使用步驟

1.導(dǎo)入配置文件到pom.xml

2.代碼部分

三、重難點(diǎn)分析

總結(jié)


前言

本題來源于全國職業(yè)技能大賽之大數(shù)據(jù)技術(shù)賽項(xiàng)賽題-離線數(shù)據(jù)處理-數(shù)據(jù)抽取(其他暫不透露)

題目:編寫Scala代碼,使用Spark將MySQL的shtd_industry庫中表EnvironmentData,ChangeRecord,BaseMachine,MachineData,ProduceRecord全量抽取到Hive的ods庫(需自建)中對(duì)應(yīng)表environmentdata,changerecord,basemachine, machinedata, producerecord中。

以下面題目為例:

抽取MySQL的shtd_industry庫中EnvironmentData表的全量數(shù)據(jù)進(jìn)入Hive的ods庫中表environmentdata,字段排序、類型不變,同時(shí)添加靜態(tài)分區(qū),分區(qū)字段類型為String,且值為當(dāng)前日期的前一天日期(分區(qū)字段格式為yyyyMMdd)。并在hive cli執(zhí)行show partitions ods.environmentdata命令,將結(jié)果截圖粘貼至對(duì)應(yīng)報(bào)告中;


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考(使用Scala語言編寫)

一、讀題分析

涉及組件:Spark,Mysql,Hive

涉及知識(shí)點(diǎn):

  1. Spark讀取數(shù)據(jù)庫數(shù)據(jù)
  2. DataFrameAPI的使用(重點(diǎn))
  3. Spark寫入數(shù)據(jù)庫數(shù)據(jù)
  4. Hive數(shù)據(jù)庫的基本操作

二、使用步驟

1.導(dǎo)入配置文件到pom.xml

        <!--SparkSQL配置-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <!--spark連接hive-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_2.11</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <!--mysql配置-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
        </dependency>

2.代碼部分

由于不是很難,直接上代碼,代碼如下(示例):

package A.offlineDataProcessing.shtd_industry.task1_dataExtraction

import org.apache.spark.sql.functions.lit
import org.apache.spark.sql.{DataFrame, SparkSession}

import java.text.SimpleDateFormat
import java.util.{Calendar, Properties}

object SparkToMysqlToHive {
  def main(args: Array[String]): Unit = {

    // 創(chuàng)建Spark對(duì)象會(huì)話
    val spark = SparkSession.builder()
      .appName("MySQL to Hive")
      .master("spark://bigdata1:7077")
      .enableHiveSupport().getOrCreate()

    // 連接MySQL數(shù)據(jù)庫并設(shè)置屬性
    val jdbcUrl = "jdbc:mysql://bigdata1:3306/shtd_industry"
    val table = "EnvironmentData"
    val properties = new Properties
    properties.put("user", "root")
    properties.put("password", "123456")

    // Read data from MySQL
    val df: DataFrame = spark.read.jdbc(jdbcUrl, table, properties)

    println("-------------------自定義操作-------------------------")
    // Add partition column
    val dateFormat = new SimpleDateFormat("yyyyMMdd")
    //    第一個(gè)getTime返回的是一個(gè) Date 對(duì)象
    //    第二個(gè) getTime 方法返回的是一個(gè)整數(shù)值,表示此 Date 對(duì)象表示的時(shí)間距離標(biāo)準(zhǔn)基準(zhǔn)時(shí)間(1970年1月1日00:00:00 GMT)的毫秒數(shù)。
    val yesterday = dateFormat.format(Calendar.getInstance().getTime.getTime - 24 * 60 * 60 * 1000)
    //對(duì)MySQL來的數(shù)據(jù)進(jìn)行withCoulum操作,有就修改,沒有就添加
    val dfWithPartition: DataFrame = df.withColumn("etldate", lit(yesterday))

    println("-------------------寫入數(shù)據(jù)-------------------------")
    // Write data to Hive
    //    mode模式為覆蓋,還有append為追加
    //    partitionBy 根據(jù)指定列進(jìn)行分區(qū)
    //    saveAsTable保存表
    dfWithPartition.write.mode("overwrite")
      .partitionBy("etldate")
      .saveAsTable("ods.environmentdata")

  }

}

hive數(shù)據(jù)庫相關(guān)的操作在這不做演示


三、重難點(diǎn)分析

沒有難點(diǎn),主要涉及能否自定義函數(shù)完成任務(wù)需求

val dateFormat = new SimpleDateFormat("yyyyMMdd")
    //    第一個(gè)getTime返回的是一個(gè) Date 對(duì)象
    //    第二個(gè) getTime 方法返回的是一個(gè)整數(shù)值,表示此 Date 對(duì)象表示的時(shí)間距離標(biāo)準(zhǔn)基準(zhǔn)時(shí)間(1970年1月1日00:00:00 GMT)的毫秒數(shù)。
    val yesterday = dateFormat.format(Calendar.getInstance().getTime.getTime - 24 * 60 * 60 * 1000)
    //對(duì)MySQL來的數(shù)據(jù)進(jìn)行withCoulum操作,有就修改,沒有就添加
    val dfWithPartition: DataFrame = df.withColumn("etldate", lit(yesterday))

總結(jié)

本文僅僅介紹了Spark讀取MySQL的數(shù)據(jù)到hive數(shù)據(jù)庫的操作,spark提供了許多方法,我們不必寫SQL語法就可以直接對(duì)數(shù)據(jù)進(jìn)行操作,還是很方便的,并且難度也不高(比flink簡單)。

如轉(zhuǎn)載請標(biāo)明出處文章來源地址http://www.zghlxwxcb.cn/news/detail-672558.html

到了這里,關(guān)于大數(shù)據(jù)之使用Spark全量抽取MySQL的數(shù)據(jù)到Hive數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Spark數(shù)倉項(xiàng)目】需求八:MySQL的DataX全量導(dǎo)入和增量導(dǎo)入Hive

    【Spark數(shù)倉項(xiàng)目】需求八:MySQL的DataX全量導(dǎo)入和增量導(dǎo)入Hive 本需求將模擬從MySQL中向Hive數(shù)倉中導(dǎo)入數(shù)據(jù),數(shù)據(jù)以時(shí)間分區(qū)。測試兩種導(dǎo)入場景,一種是將數(shù)據(jù)全量導(dǎo)入,即包含所有時(shí)間分區(qū);另一種是每天運(yùn)行調(diào)度,僅導(dǎo)入當(dāng)天時(shí)間分區(qū)中的用戶數(shù)據(jù)。 mysql表建表語句:

    2024年02月03日
    瀏覽(21)
  • Spark、RDD、Hive 、Hadoop-Hive 和傳統(tǒng)關(guān)系型數(shù)據(jù)庫區(qū)別

    Spark、RDD、Hive 、Hadoop-Hive 和傳統(tǒng)關(guān)系型數(shù)據(jù)庫區(qū)別

    Hive Hadoop Hive 和傳統(tǒng)關(guān)系型數(shù)據(jù)庫區(qū)別 Spark 概念 基于內(nèi)存的分布式計(jì)算框架 只負(fù)責(zé)算 不負(fù)責(zé)存 spark 在離線計(jì)算 功能上 類似于mapreduce的作用 MapReduce的缺點(diǎn) 運(yùn)行速度慢 (沒有充分利用內(nèi)存) 接口比較簡單,僅支持Map Reduce 功能比較單一 只能做離線計(jì)算 Spark優(yōu)勢 運(yùn)行速度快

    2024年02月13日
    瀏覽(24)
  • 處理大數(shù)據(jù)的基礎(chǔ)架構(gòu),OLTP和OLAP的區(qū)別,數(shù)據(jù)庫與Hadoop、Spark、Hive和Flink大數(shù)據(jù)技術(shù)

    處理大數(shù)據(jù)的基礎(chǔ)架構(gòu),OLTP和OLAP的區(qū)別,數(shù)據(jù)庫與Hadoop、Spark、Hive和Flink大數(shù)據(jù)技術(shù)

    2022找工作是學(xué)歷、能力和運(yùn)氣的超強(qiáng)結(jié)合體,遇到寒冬,大廠不招人,可能很多算法學(xué)生都得去找開發(fā),測開 測開的話,你就得學(xué)數(shù)據(jù)庫,sql,oracle,尤其sql要學(xué),當(dāng)然,像很多金融企業(yè)、安全機(jī)構(gòu)啥的,他們必須要用oracle數(shù)據(jù)庫 這oracle比sql安全,強(qiáng)大多了,所以你需要學(xué)

    2024年02月08日
    瀏覽(33)
  • Spark讀寫MySQL數(shù)據(jù)庫

    一、讀取數(shù)據(jù)庫 (一)通過RDD的方式讀取MySQL數(shù)據(jù)庫 四要素:驅(qū)動(dòng)、連接地址、賬號(hào)密碼 (二)通過DataFrame的方式讀取MySQL數(shù)據(jù)庫 二、添加數(shù)據(jù)到MySQL (一)通過RDD的方式插入數(shù)據(jù)到MySQL 每個(gè)分區(qū)執(zhí)行一次創(chuàng)建連接和關(guān)閉連接 (二)通過RDD的方式插入數(shù)據(jù)到MySQL 2 每個(gè)分區(qū)

    2024年04月23日
    瀏覽(25)
  • 大數(shù)據(jù)平臺(tái)環(huán)境搭建---- Hive&MySql數(shù)據(jù)庫組件配置

    前置環(huán)境 Hadoop集群必須部署完成,如果還沒有搭建請先前往Hadoop全分布搭建筆記 程序版本 hive 1.1.0 mysql 5.7.25 mysql-connector-java-5.1.39-bin.jar 資源下載 官網(wǎng)下載: mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar :https://downloads.mysql.com/archives/community/? 鏈接:https://pan.xunlei.com/s/VNoQg4wdxda5by6L8Lvug9e

    2024年01月25日
    瀏覽(35)
  • 分布式數(shù)據(jù)庫·Hive和MySQL的安裝與配置

    分布式數(shù)據(jù)庫·Hive和MySQL的安裝與配置

    一、版本要求:Hadoop:hadoop-2.10.1、MySQL:mysql-8.0.35、 HIVE :apache-hive-3.1.2、MySQL驅(qū)動(dòng):mysql-connector-java-5.1.49 安裝包網(wǎng)盤鏈接:阿里云盤分享 安裝位置? Hive:master、MySQL:slave1 二、卸載已安裝的MySQL(如果不符合需求) 1.關(guān)閉MySQL服務(wù) 2.Yum檢查 3.安裝則直接刪除 4.rpm檢查 5.如果存在則刪

    2024年02月03日
    瀏覽(26)
  • 騰訊云向量數(shù)據(jù)庫正式對(duì)外全量開放公測

    11月1日,騰訊云對(duì)外宣布向量數(shù)據(jù)庫正式全量開放公測,同時(shí)性能層面帶來巨大提升。騰訊云數(shù)據(jù)庫副總經(jīng)理羅云表示,除了公測之外,騰訊云向量數(shù)據(jù)庫單索引已經(jīng)支持百億級(jí)向量規(guī)模,支持百萬級(jí)QPS毫秒級(jí)查詢延遲,領(lǐng)先行業(yè)平均水平1.5倍以上,計(jì)算成本低于行業(yè)水平

    2024年02月06日
    瀏覽(22)
  • Kettle分頁循環(huán)抽取全量數(shù)據(jù),三步搞定

    Kettle分頁循環(huán)抽取全量數(shù)據(jù),三步搞定

    Kettle分頁抽取全量數(shù)據(jù) , 適用于大數(shù)據(jù)量初次全量抽取轉(zhuǎn)換. 后續(xù)可再增加作業(yè)和轉(zhuǎn)換,根據(jù)動(dòng)態(tài)時(shí)間范圍增量抽取轉(zhuǎn)換...這篇先說全量的. ? 完整流程作業(yè)圖如下:? ( 后續(xù)會(huì)拆解 梳理 每步流程 ) ? 主要步驟如下: 有3步 ?????????第一步: 把需要用到的源數(shù)據(jù)DB和目標(biāo)數(shù)據(jù)

    2024年02月06日
    瀏覽(11)
  • 4、hive的使用示例詳解-事務(wù)表、視圖、物化視圖、DDL(數(shù)據(jù)庫、表以及分區(qū))管理詳細(xì)操作

    4、hive的使用示例詳解-事務(wù)表、視圖、物化視圖、DDL(數(shù)據(jù)庫、表以及分區(qū))管理詳細(xì)操作

    1、apache-hive-3.1.2簡介及部署(三種部署方式-內(nèi)嵌模式、本地模式和遠(yuǎn)程模式)及驗(yàn)證詳解 2、hive相關(guān)概念詳解–架構(gòu)、讀寫文件機(jī)制、數(shù)據(jù)存儲(chǔ) 3、hive的使用示例詳解-建表、數(shù)據(jù)類型詳解、內(nèi)部外部表、分區(qū)表、分桶表 4、hive的使用示例詳解-事務(wù)表、視圖、物化視圖、DDL

    2024年02月09日
    瀏覽(26)
  • 【MySQL】使用DBeaver數(shù)據(jù)庫管理工具進(jìn)行MySQL數(shù)據(jù)庫連接

    【MySQL】使用DBeaver數(shù)據(jù)庫管理工具進(jìn)行MySQL數(shù)據(jù)庫連接

    一、數(shù)據(jù)庫連接信息填寫 1、服務(wù)器地址:填寫服務(wù)器部署的地址,以及端口號(hào) 2、數(shù)據(jù)庫:sys 3、用戶名:root 4、密碼:服務(wù)器上面設(shè)置的具體密碼 以上信息填寫錯(cuò)誤的報(bào)錯(cuò)提示 :Access denied for user ‘XXX’@’%’ to database ‘10.42.67.22’ 二、數(shù)據(jù)庫說明 1、數(shù)據(jù)庫連接時(shí)選擇的

    2024年02月09日
    瀏覽(109)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包