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

大數(shù)據(jù)之指標(biāo)計算(6) -- 編寫Hive SQL代碼,根據(jù)dwd層dwd.fact_environment_data表,統(tǒng)計檢測設(shè)備的每月平均濕度與廠內(nèi)檢測結(jié)果做對比存入Mysql數(shù)據(jù)庫中

這篇具有很好參考價值的文章主要介紹了大數(shù)據(jù)之指標(biāo)計算(6) -- 編寫Hive SQL代碼,根據(jù)dwd層dwd.fact_environment_data表,統(tǒng)計檢測設(shè)備的每月平均濕度與廠內(nèi)檢測結(jié)果做對比存入Mysql數(shù)據(jù)庫中。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

?文章來源地址http://www.zghlxwxcb.cn/news/detail-477272.html


前言

本題來源于全國職業(yè)技能大賽之大數(shù)據(jù)技術(shù)賽項工業(yè)數(shù)據(jù)處理賽題 -?離線數(shù)據(jù)處理 - 指標(biāo)計算

注:由于個人設(shè)備問題,代碼執(zhí)行結(jié)果以及最后數(shù)據(jù)顯示結(jié)果將不會給出。

題目:

大數(shù)據(jù)之指標(biāo)計算(6) -- 編寫Hive SQL代碼,根據(jù)dwd層dwd.fact_environment_data表,統(tǒng)計檢測設(shè)備的每月平均濕度與廠內(nèi)檢測結(jié)果做對比存入Mysql數(shù)據(jù)庫中

?


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

一、讀題分析

涉及組件:Hive

涉及知識點:

  1. HiveSQL語法的使用
  2. ...

二、處理過程

????????本題給出兩種參考方法一種是編寫HiveSQL代碼,另外一種是編寫Scala代碼使用spark處理框架去寫,本質(zhì)上差不多,調(diào)用的是SparkSQL。

但需注意的是:本題兩種代碼,作者均為測試證實,僅供參考。

?

1.HiveSQL

-- 在mysql端建表
create table machine_humidityAVG_compare
(
    base_id        int,
    machine_avg    varchar(255),
    factory_avg    varchar(255),
    comparison     varchar(255),
    env_date_year  varchar(255),
    env_date_month varchar(255)
);



with temp as
         (select base_id,
                 machine_avg,
                 avg(machine_avg) over () as factory_avg,
                 case
                     when machine_avg > avg(machine_avg) over () then '高'
                     when machine_avg < avg(machine_avg) over () then '低'
                     else '相同' end        as comparison,
                 env_date_year,
                 env_date_month
          from (select t.BaseID              base_id,
                       avg(t.Humidity)    as machine_avg,
                       year(t.InPutTime)  as env_date_year,
                       month(t.InPutTime) as env_date_month
                from fact_environment_data t
                group by t.BaseID, year(t.InPutTime), month(t.InPutTime)))
insert
overwrite
table
shtd_industry.machine_humidityAVG_compare
select *
from temp;
-- 不能導(dǎo)入,需要用sqoop導(dǎo)入mysql

select * from shtd_industry.machine_humidityAVG_compare order by base_id desc limit 5;

2.SparkSQL


import org.apache.spark.sql.SparkSession

import java.util.Properties

object answer_No6 {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("MachineAvgProduceTime").master("local[*]").enableHiveSupport()
      .getOrCreate()

    val df = spark.sql(
      """
        |
        |select base_id,
        |                 machine_avg,
        |                 avg(machine_avg) over () as factory_avg,
        |                 case
        |                     when machine_avg > avg(machine_avg) over () then '高'
        |                     when machine_avg < avg(machine_avg) over () then '低'
        |                     else '相同' end        as comparison,
        |                 env_date_year,
        |                 env_date_month
        |          from (select t.BaseID              base_id,
        |                       avg(t.Humidity)    as machine_avg,
        |                       year(t.InPutTime)  as env_date_year,
        |                       month(t.InPutTime) as env_date_month
        |                from dwd.fact_environment_data t
        |                group by t.BaseID, year(t.InPutTime), month(t.InPutTime))
        |
        |""".stripMargin)
    val url = "jdbc:mysql://192.168.59.100:3306/shtd_industry"
    val prop = new Properties()
    prop.setProperty("user", "root")
    prop.setProperty("password", "123456")

    df.write.mode("overwrite").jdbc(url, "machine_humidityAVG_compare", prop)

  }


}

?


三、重難點分析

????????每個設(shè)備的每月平均濕度與廠內(nèi)所有檢測設(shè)備每月檢測結(jié)果的平均濕度做比較(結(jié)果值為:高/低/相同),在這里實現(xiàn)起來還是有點難度的。使用了case配對。

????????本期為指標(biāo)計算第6篇,后續(xù)應(yīng)該還會出2篇。


總結(jié)?

這是一個關(guān)于使用Hive SQL統(tǒng)計檢測設(shè)備每月平均濕度并將結(jié)果存儲在MySQL數(shù)據(jù)庫中,并與廠內(nèi)所有檢測設(shè)備每月檢測結(jié)果的平均濕度做比較,然后在Linux的MySQL命令行工具中查詢前五條檢測設(shè)備ID倒序排列的數(shù)據(jù)的問題。下面是具體的要求和表結(jié)構(gòu):

  • 在dwd層fact_environment_data表中,統(tǒng)計每個檢測設(shè)備(BaseID)每月的平均濕度(Humidity),得到base_id、env_date_year、env_date_month和每月平均濕度字段。
  • 將每個檢測設(shè)備的每月平均濕度與廠內(nèi)所有檢測設(shè)備每月檢測結(jié)果的平均濕度做比較,得到設(shè)備id(base_id)、單設(shè)備每月檢測平均值(machine_avg)、廠內(nèi)所有設(shè)備每月檢測平均值(factory_avg)和比較結(jié)果(comparison,取值為“高”、“低”或“相同”)字段。
  • 將比較結(jié)果存儲在MySQL數(shù)據(jù)庫shtd_industry的表machine_humidityAVG_compare中,表結(jié)構(gòu)包含base_id、machine_avg、factory_avg、comparison、env_date_year和env_date_month字段。
  • 通過Linux的MySQL命令行工具查詢出前5條檢測設(shè)備ID倒序排列的數(shù)據(jù),將SQL語句和執(zhí)行結(jié)果截圖粘貼到報告中。

注意:這個題目需要掌握Hive SQL和MySQL數(shù)據(jù)庫以及Linux命令行工具的使用。

?

????????請關(guān)注我的大數(shù)據(jù)技術(shù)專欄大數(shù)據(jù)技術(shù) 作者: Eternity.Arrebol

????????請關(guān)注我獲取更多與大數(shù)據(jù)相關(guān)的文章Eternity.Arrebol的博客

Q-歡迎在評論區(qū)進行交流-Q

?

到了這里,關(guān)于大數(shù)據(jù)之指標(biāo)計算(6) -- 編寫Hive SQL代碼,根據(jù)dwd層dwd.fact_environment_data表,統(tǒng)計檢測設(shè)備的每月平均濕度與廠內(nèi)檢測結(jié)果做對比存入Mysql數(shù)據(jù)庫中的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包