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

Hive實(shí)戰(zhàn):分科匯總求月考平均分

這篇具有很好參考價(jià)值的文章主要介紹了Hive實(shí)戰(zhàn):分科匯總求月考平均分。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、實(shí)戰(zhàn)概述

  • 在這個(gè)實(shí)戰(zhàn)中,我們使用了Hive框架來(lái)處理學(xué)生的月考成績(jī)數(shù)據(jù)。首先,我們準(zhǔn)備了三個(gè)文本文件,分別包含了語(yǔ)文、數(shù)學(xué)和英語(yǔ)的月考成績(jī)數(shù)據(jù)。這些數(shù)據(jù)被上傳到HDFS的指定目錄。

  • 接著,我們啟動(dòng)了Hive Metastore服務(wù),并通過(guò)Hive客戶端連接到Hive。在Hive中,我們創(chuàng)建了一個(gè)分區(qū)表student_score,用于存儲(chǔ)學(xué)生的成績(jī)數(shù)據(jù),其中分區(qū)字段為科目(subject)。

  • 然后,我們按照科目將數(shù)據(jù)加載到分區(qū)表中,分別加載了語(yǔ)文、數(shù)學(xué)和英語(yǔ)的成績(jī)數(shù)據(jù)。通過(guò)這樣的分區(qū)方式,我們能夠更方便地對(duì)數(shù)據(jù)進(jìn)行查詢和分析。

  • 最后,我們使用Hive的SQL語(yǔ)句進(jìn)行統(tǒng)計(jì),計(jì)算每個(gè)學(xué)生在三個(gè)科目上的月考平均分。使用了AVG函數(shù)和ROUND函數(shù)來(lái)得到每個(gè)學(xué)生的平均分,并保留一位小數(shù)。這樣,我們得到了每個(gè)學(xué)生在語(yǔ)文、數(shù)學(xué)和英語(yǔ)三個(gè)科目上的月考平均分的統(tǒng)計(jì)結(jié)果。

  • 整個(gè)實(shí)戰(zhàn)過(guò)程涉及了Hive的表創(chuàng)建、分區(qū)管理、數(shù)據(jù)加載和SQL查詢等操作,展示了Hive在大數(shù)據(jù)處理中的靈活性和便捷性。通過(guò)這次實(shí)戰(zhàn),我們能夠更好地理解和掌握Hive框架在數(shù)據(jù)分析和查詢中的應(yīng)用。

二、提出任務(wù)

  • 語(yǔ)文月考成績(jī) - chinese.txt
1 張曉云 89
2 張曉云 73
3 張曉云 67
4 張曉云 70
5 張曉云 79
6 張曉云 87
7 張曉云 99
8 張曉云 83
9 張曉云 97
10 張曉云 92
11 張曉云 67
12 張曉云 86
1 王東林 49
2 王東林 83
3 王東林 67
4 王東林 49
5 王東林 93
6 王東林 87
7 王東林 65
8 王東林 92
9 王東林 60
10 王東林 94
11 王東林 81
12 王東林 90
1 李宏宇 77
2 李宏宇 66
3 李宏宇 89
4 李宏宇 87
5 李宏宇 96
6 李宏宇 79
7 李宏宇 87
8 李宏宇 96
9 李宏宇 69
10 李宏宇 87
11 李宏宇 96
12 李宏宇 79
  • 數(shù)學(xué)月考成績(jī) - math.txt
1 張曉云 79
2 張曉云 83
3 張曉云 77
4 張曉云 90
5 張曉云 89
6 張曉云 67
7 張曉云 89
8 張曉云 93
9 張曉云 90
10 張曉云 82
11 張曉云 77
12 張曉云 96
1 王東林 78
2 王東林 94
3 王東林 76
4 王東林 70
5 王東林 90
6 王東林 83
7 王東林 85
8 王東林 82
9 王東林 84
10 王東林 78
11 王東林 99
12 王東林 93
1 李宏宇 86
2 李宏宇 81
3 李宏宇 76
4 李宏宇 93
5 李宏宇 88
6 李宏宇 82
7 李宏宇 81
8 李宏宇 93
9 李宏宇 86
10 李宏宇 90
11 李宏宇 67
12 李宏宇 88
  • 英語(yǔ)月考成績(jī) - english.txt
1 張曉云 78
2 張曉云 83
3 張曉云 92
4 張曉云 66
5 張曉云 82
6 張曉云 89
7 張曉云 79
8 張曉云 68
9 張曉云 96
10 張曉云 91
11 張曉云 87
12 張曉云 82
1 王東林 69
2 王東林 86
3 王東林 73
4 王東林 99
5 王東林 67
6 王東林 95
7 王東林 74
8 王東林 92
9 王東林 76
10 王東林 88
11 王東林 92
12 王東林 56
1 李宏宇 88
2 李宏宇 78
3 李宏宇 92
4 李宏宇 78
5 李宏宇 89
6 李宏宇 76
7 李宏宇 92
8 李宏宇 75
9 李宏宇 88
10 李宏宇 92
11 李宏宇 97
12 李宏宇 85
  • 利用Hive框架,統(tǒng)計(jì)每個(gè)同學(xué)各科月考平均分
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

三、完成任務(wù)

(一)準(zhǔn)備數(shù)據(jù)

1、在虛擬機(jī)上創(chuàng)建文本文件

  • 在master虛擬機(jī)上創(chuàng)建chinese.txt文件
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 創(chuàng)建math.txt文件
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 創(chuàng)建english.txt文件
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

2、上傳文件到HDFS指定目錄

  • 創(chuàng)建/subjectavg/input目錄,執(zhí)行命令:hdfs dfs -mkdir -p /subjectavg/input
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 將文本文件chinese.txtmath.txtenglish.txt,上傳到HDFS的/subjectavg/input目錄
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

(二)實(shí)現(xiàn)步驟

1、啟動(dòng)Hive Metastore服務(wù)

  • 執(zhí)行命令:hive --service metastore &,在后臺(tái)啟動(dòng)metastore服務(wù)
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

2、啟動(dòng)Hive客戶端

  • 執(zhí)行命令:hive,看到命令提示符hive>
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

3、創(chuàng)建分區(qū)的學(xué)生成績(jī)表

  • 執(zhí)行語(yǔ)句:CREATE TABLE student_score ( id INT, name STRING, score INT ) PARTITIONED BY (subject STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ';
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

4、按分區(qū)加載數(shù)據(jù)

  • 加載chinese.txtchinese分區(qū)
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 加載math.txtmath分區(qū)
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 加載english.txtenglish分區(qū)
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 在Hadoop WebUI里查看分區(qū)表對(duì)應(yīng)的分區(qū)目錄
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 數(shù)據(jù)文件,比如chinese.txt就在對(duì)應(yīng)分區(qū)目錄里
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

5、查看分區(qū)表全部記錄

  • 執(zhí)行語(yǔ)句:SELECT * FROM student_score;
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總
1       張曉云  89      chinese
2       張曉云  73      chinese
3       張曉云  67      chinese
4       張曉云  70      chinese
5       張曉云  79      chinese
6       張曉云  87      chinese
7       張曉云  99      chinese
8       張曉云  83      chinese
9       張曉云  97      chinese
10      張曉云  92      chinese
11      張曉云  67      chinese
12      張曉云  86      chinese
1       王東林  49      chinese
2       王東林  83      chinese
3       王東林  67      chinese
4       王東林  49      chinese
5       王東林  93      chinese
6       王東林  87      chinese
7       王東林  65      chinese
8       王東林  92      chinese
9       王東林  60      chinese
10      王東林  94      chinese
11      王東林  81      chinese
12      王東林  90      chinese
1       李宏宇  77      chinese
2       李宏宇  66      chinese
3       李宏宇  89      chinese
4       李宏宇  87      chinese
5       李宏宇  96      chinese
6       李宏宇  79      chinese
7       李宏宇  87      chinese
8       李宏宇  96      chinese
9       李宏宇  69      chinese
10      李宏宇  87      chinese
11      李宏宇  96      chinese
12      李宏宇  79      chinese
1       張曉云  78      english
2       張曉云  83      english
3       張曉云  92      english
4       張曉云  66      english
5       張曉云  82      english
6       張曉云  89      english
7       張曉云  79      english
8       張曉云  68      english
9       張曉云  96      english
10      張曉云  91      english
11      張曉云  87      english
12      張曉云  82      english
1       王東林  69      english
2       王東林  86      english
3       王東林  73      english
4       王東林  99      english
5       王東林  67      english
6       王東林  95      english
7       王東林  74      english
8       王東林  92      english
9       王東林  76      english
10      王東林  88      english
11      王東林  92      english
12      王東林  56      english
1       李宏宇  88      english
2       李宏宇  78      english
3       李宏宇  92      english
4       李宏宇  78      english
5       李宏宇  89      english
6       李宏宇  76      english
7       李宏宇  92      english
8       李宏宇  75      english
9       李宏宇  88      english
10      李宏宇  92      english
11      李宏宇  97      english
12      李宏宇  85      english
1       張曉云  79      math
2       張曉云  83      math
3       張曉云  77      math
4       張曉云  90      math
5       張曉云  89      math
6       張曉云  67      math
7       張曉云  89      math
8       張曉云  93      math
9       張曉云  90      math
10      張曉云  82      math
11      張曉云  77      math
12      張曉云  96      math
1       王東林  78      math
2       王東林  94      math
3       王東林  76      math
4       王東林  70      math
5       王東林  90      math
6       王東林  83      math
7       王東林  85      math
8       王東林  82      math
9       王東林  84      math
10      王東林  78      math
11      王東林  99      math
12      王東林  93      math
1       李宏宇  86      math
2       李宏宇  81      math
3       李宏宇  76      math
4       李宏宇  93      math
5       李宏宇  88      math
6       李宏宇  82      math
7       李宏宇  81      math
8       李宏宇  93      math
9       李宏宇  86      math
10      李宏宇  90      math
11      李宏宇  67      math
12      李宏宇  88      math

6、按姓名和科目分組匯總平均分

  • 執(zhí)行語(yǔ)句:SELECT name, subject, ROUND(AVG(score), 1) AS average_score FROM student_score GROUP BY name, subject;
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總
  • 每個(gè)學(xué)生三科平均分倒是統(tǒng)計(jì)出進(jìn)來(lái)了,但是格式我們并不滿意,我們希望每個(gè)學(xué)生的三科平均分不是分占三行,而是在一行里顯示三科平均分。

7、按姓名統(tǒng)計(jì)每個(gè)學(xué)生三科月考平均分

  • 執(zhí)行語(yǔ)句:SELECT name, ROUND(AVG(CASE WHEN subject = 'chinese' THEN score ELSE NULL END), 1) AS chinese_avg, ROUND(AVG(CASE WHEN subject = 'math' THEN score ELSE NULL END), 1) AS math_avg, ROUND(AVG(CASE WHEN subject = 'english' THEN score ELSE NULL END), 1) AS english_avg FROM student_score GROUP BY name;
    Hive實(shí)戰(zhàn):分科匯總求月考平均分,數(shù)倉(cāng)技術(shù)Hive入門,hive,hadoop,分科匯總

  • 這個(gè)SQL查詢語(yǔ)句用于從一個(gè)名為student_score的表中檢索學(xué)生的平均分?jǐn)?shù),并按學(xué)生姓名進(jìn)行分組。以下是查詢的解釋說(shuō)明:

  1. SELECT子句

    • name: 選擇學(xué)生的姓名。
    • ROUND(AVG(CASE WHEN subject = 'chinese' THEN score ELSE NULL END), 1) AS chinese_avg: 計(jì)算學(xué)生在"chinese"科目的平均分?jǐn)?shù),并將結(jié)果四舍五入到一位小數(shù)。使用CASE語(yǔ)句,只有當(dāng)科目是"chinese"時(shí)才考慮該分?jǐn)?shù),否則將其視為NULL。
    • ROUND(AVG(CASE WHEN subject = 'math' THEN score ELSE NULL END), 1) AS math_avg: 計(jì)算學(xué)生在"math"科目的平均分?jǐn)?shù),同樣將結(jié)果四舍五入到一位小數(shù)。
    • ROUND(AVG(CASE WHEN subject = 'english' THEN score ELSE NULL END), 1) AS english_avg: 計(jì)算學(xué)生在"english"科目的平均分?jǐn)?shù),同樣將結(jié)果四舍五入到一位小數(shù)。
  2. FROM子句

    • student_score: 表示數(shù)據(jù)來(lái)自名為student_score的表。
  3. GROUP BY子句文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-777908.html

    • GROUP BY name: 將結(jié)果按學(xué)生姓名進(jìn)行分組,以便計(jì)算每個(gè)學(xué)生在不同科目上的平均分?jǐn)?shù)。
  • 因此,這個(gè)查詢將返回一個(gè)結(jié)果集,其中包含每個(gè)學(xué)生的姓名以及他們?cè)?chinese"、"math"和"english"科目上的平均分?jǐn)?shù),四舍五入到一位小數(shù)。

四、實(shí)戰(zhàn)總結(jié)

  • 本次實(shí)戰(zhàn)運(yùn)用Hive處理學(xué)生月考成績(jī)數(shù)據(jù),通過(guò)創(chuàng)建分區(qū)表、加載各科目成績(jī)至對(duì)應(yīng)分區(qū),并使用SQL語(yǔ)句計(jì)算平均分,展示了Hive在大數(shù)據(jù)管理、分析查詢及統(tǒng)計(jì)計(jì)算上的靈活性與便捷性。

到了這里,關(guān)于Hive實(shí)戰(zhàn):分科匯總求月考平均分的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • c語(yǔ)言完成:輸入10個(gè)學(xué)生5門課程成績(jī),分別用函數(shù)求: (1) 每個(gè)學(xué)生的平均分; (2) 每門課平均分; (3) 每門課不及格人數(shù)。 ...

    下面是一個(gè)可以實(shí)現(xiàn)上述功能的c語(yǔ)言代碼示例: ``` #include stdio.h #define STUDENT_NUM 10 // 學(xué)生數(shù)量 #define COURSE_NUM 5 // 課程數(shù)量 int main() { // 存儲(chǔ)學(xué)生成績(jī)的二維數(shù)組 int scores[COURSE_NUM][STUDENT_NUM]; // 存儲(chǔ)每個(gè)學(xué)生的平均分 double student_avgs[STUDENT_NUM]; // 存儲(chǔ)每門課平均分 double course_a

    2024年02月04日
    瀏覽(27)
  • Python---練習(xí):求某同學(xué)成績(jī)的總分及平均分

    Python---練習(xí):求某同學(xué)成績(jī)的總分及平均分

    需求: 已知某同學(xué)的語(yǔ)文(70)、數(shù)學(xué)(90) 、英語(yǔ)(80)、歷史(75)、地理(85)五門課的成績(jī),編程求該同學(xué)的總分以及平均分。 思考: 要求是算總分和平均分,先看總分,已經(jīng)知道了各科成績(jī),那么可以用把成績(jī)賦值給每個(gè)學(xué)科的變量名,比如?chinese math english history geography,? 幾個(gè)變

    2024年04月17日
    瀏覽(18)
  • C語(yǔ)言課程設(shè)計(jì):學(xué)生成績(jī)信息管理系統(tǒng)(排序、平均分、總分)詳解

    C語(yǔ)言課程設(shè)計(jì):學(xué)生成績(jī)信息管理系統(tǒng)(排序、平均分、總分)詳解

    1、需求分析 利用C語(yǔ)言編寫一個(gè)可以對(duì)學(xué)生成績(jī)信息進(jìn)行管理的系統(tǒng) 0、退出系統(tǒng) 1、錄入學(xué)生信息和成績(jī) 2、打印學(xué)生信息 3、統(tǒng)計(jì)學(xué)生人數(shù) 4、查找學(xué)生信息 5、修改學(xué)生信息 6、刪除學(xué)生信息 7、排序?qū)W生成績(jī) 8、生成學(xué)生信息文件 9、讀取文件學(xué)生信息 10、輸出各科成績(jī)不

    2024年02月11日
    瀏覽(32)
  • python使用列表模擬10個(gè)評(píng)委打分,去除最高、低分后,求平均分

    1、 打分實(shí)現(xiàn) 定義一個(gè)空列表接收評(píng)委的打分? : scores = []?? 在for循環(huán)中接收打分,并對(duì)分?jǐn)?shù)進(jìn)行判斷: scores.append(score)#使用append函數(shù)將打分存入列表中 判斷高低分,然后使用remove函數(shù)去掉高低分 2、猜拳實(shí)現(xiàn): 3、1-100偶數(shù)累加實(shí)現(xiàn): 法一: 法二:? ?4、退出循環(huán):bre

    2024年02月11日
    瀏覽(35)
  • 視頻高效剪輯,輕松平均分割視頻,生成高質(zhì)量M3U8

    視頻高效剪輯,輕松平均分割視頻,生成高質(zhì)量M3U8

    您是否在處理視頻剪輯時(shí)常常面臨繁瑣的切分工作?是否希望能夠快速而精準(zhǔn)地平均分割視頻,并生成適用于在線播放的高質(zhì)量m3u8文件?現(xiàn)在,我們的智能視頻剪輯大師為您提供了一種簡(jiǎn)便而高效的解決方案!無(wú)需復(fù)雜操作,只需幾步操作,您即可輕松實(shí)現(xiàn)視頻切分和m3u8生

    2024年02月13日
    瀏覽(28)
  • python進(jìn)階--月考二

    python進(jìn)階--月考二

    具體要求: 1)該裝飾器要求做到通用,可以裝飾定長(zhǎng),不定長(zhǎng)各種參數(shù)的函數(shù).(4分) 2)如果被裝飾的函數(shù)拋出異常,則記錄函數(shù)名,異常信息 到文件error_log.txt。(4分) 3)裝飾器可以正確計(jì)算函數(shù)的運(yùn)行時(shí)間。(3分) 4)創(chuàng)建文件power_fun.py 導(dǎo)入 decory.py中寫好的裝飾器,編

    2024年02月04日
    瀏覽(16)
  • python進(jìn)階--月考三

    創(chuàng)建一個(gè)decorator.py的文件用來(lái)寫2個(gè)裝飾器 一個(gè)統(tǒng)計(jì)函數(shù)運(yùn)行時(shí)間,一個(gè)記錄函數(shù)的日志 (15分) 具體要求: 1)裝飾器要求做到通用,可以裝飾定長(zhǎng),不定長(zhǎng)各種參數(shù)的函數(shù).(4分) 2)裝飾器可以正常實(shí)現(xiàn)功能。(4分) 3)創(chuàng)建文件first_aunser.py 導(dǎo)入 decorator.py中寫好的裝飾器

    2024年02月04日
    瀏覽(17)
  • hive重點(diǎn)內(nèi)容匯總

    ?? ?? ?? ?? 這篇文章一方面是幫助我記憶常用函數(shù),如果工作中忘了不用百度,直接翻這篇文章就好。另一方面也想分享給各位,大家一起學(xué)習(xí)。 ?? ?? ?? ?? ?? ?? 使用格式: from_unixtime(10位時(shí)間戳,\\\'想轉(zhuǎn)成的日期格式\\\') 舉例: 日期格式寫 \\\'年-月-日 時(shí)

    2024年02月10日
    瀏覽(21)
  • Pandas實(shí)戰(zhàn)100例 | 案例 15: 移動(dòng)平均 - 使用 `rolling` 方法

    案例 15: 移動(dòng)平均 - 使用 rolling 方法 知識(shí)點(diǎn)講解 移動(dòng)平均是時(shí)間序列數(shù)據(jù)分析中的一種基本技術(shù),用于平滑時(shí)間序列中的短期波動(dòng)并突出長(zhǎng)期趨勢(shì)。Pandas 的 rolling 方法提供了計(jì)算移動(dòng)平均的簡(jiǎn)便方式。 計(jì)算移動(dòng)平均 : 使用 rolling 方法,你可以指定窗口大小來(lái)計(jì)算移動(dòng)平均。

    2024年01月20日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包