一、實(shí)戰(zhàn)概述
-
本次實(shí)戰(zhàn)主要聚焦于使用Hive框架對(duì)成績(jī)數(shù)據(jù)進(jìn)行處理和分析。任務(wù)目標(biāo)是基于一個(gè)包含六個(gè)字段(姓名、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、物理、化學(xué))的成績(jī)表,計(jì)算每個(gè)學(xué)生的總分和平均分。
-
首先,我們?cè)谔摂M機(jī)上創(chuàng)建了一個(gè)名為
score.txt
的文本文件,其中包含了五名學(xué)生的成績(jī)記錄。然后,我們將該文件上傳到HDFS的指定目錄/hivescore/input
中。 -
接下來(lái),我們啟動(dòng)了Hive Metastore服務(wù),并通過(guò)執(zhí)行命令行啟動(dòng)了Hive客戶(hù)端。在客戶(hù)端中,我們創(chuàng)建了一個(gè)名為
t_score
的內(nèi)部Hive表,該表的結(jié)構(gòu)與成績(jī)表的字段相匹配。我們使用load data
命令將HDFS中的成績(jī)數(shù)據(jù)加載到t_score
表中。 -
最后,我們編寫(xiě)了一條Hive SQL語(yǔ)句,用于計(jì)算每個(gè)學(xué)生的總分和平均分。該語(yǔ)句根據(jù)學(xué)生的姓名進(jìn)行分組,并對(duì)每個(gè)學(xué)生的所有科目成績(jī)進(jìn)行求和和求平均值。結(jié)果集包含了每個(gè)學(xué)生的姓名、總分和平均分。
-
通過(guò)這次實(shí)戰(zhàn),我們展示了如何利用Hive框架處理和分析大規(guī)模數(shù)據(jù),以及如何通過(guò)簡(jiǎn)單的SQL語(yǔ)句實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)統(tǒng)計(jì)和計(jì)算任務(wù)。這一過(guò)程不僅體現(xiàn)了Hive在大數(shù)據(jù)處理中的高效性和便利性,也為我們提供了寶貴的實(shí)踐經(jīng)驗(yàn),為進(jìn)一步的數(shù)據(jù)分析工作奠定了基礎(chǔ)。
二、提出任務(wù)
- 成績(jī)表,包含六個(gè)字段(姓名、語(yǔ)文、數(shù)學(xué)、英語(yǔ)、物理、化學(xué)),有五條記錄
姓名 | 語(yǔ)文 | 數(shù)學(xué) | 英語(yǔ) | 物理 | 化學(xué) |
---|---|---|---|---|---|
李小雙 | 89 | 78 | 94 | 96 | 87 |
王麗霞 | 94 | 80 | 86 | 78 | 80 |
吳雨涵 | 90 | 67 | 95 | 92 | 60 |
張曉紅 | 87 | 76 | 90 | 79 | 59 |
陳燕文 | 97 | 95 | 92 | 88 | 86 |
- 利用Hive框架,計(jì)算每個(gè)同學(xué)的總分與平均分
吳雨涵 404 404.0
張曉紅 391 391.0
李小雙 444 444.0
王麗霞 418 418.0
陳燕文 458 458.0
三、完成任務(wù)
(一)準(zhǔn)備數(shù)據(jù)文件
1、在虛擬機(jī)上創(chuàng)建文本文件
- 在master虛擬機(jī)上創(chuàng)建
score.txt
文件
2、將文本文件上傳到HDFS指定目錄
-
在HDFS上創(chuàng)建
/hivescore/input
目錄文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-770502.html
-
將
score.txt
文件上傳到HDFS的/hivescore/input
目錄文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770502.html
(二)實(shí)現(xiàn)步驟
1、啟動(dòng)Hive Metastore服務(wù)
- 執(zhí)行命令:
hive --service metastore &
,在后臺(tái)啟動(dòng)metastore
服務(wù)
2、啟動(dòng)Hive客戶(hù)端
- 執(zhí)行命令:
hive
,看到命令提示符hive>
3、創(chuàng)建Hive表,加載HDFS數(shù)據(jù)文件
- 創(chuàng)建內(nèi)部表
t_score
,執(zhí)行命令:create table t_score ( name string, chinese int, math int, english int, physics int, chemistry int ) row format delimited fields terminated by ' ';
- 在MySQL的
hive
數(shù)據(jù)庫(kù)的TBLS
表里可以查看內(nèi)部表t_score
對(duì)應(yīng)的記錄 - 加載成績(jī)數(shù)據(jù)文件到內(nèi)部表
t_score
,執(zhí)行命令:load data inpath '/hivescore/input/score.txt' into table t_score;
- 查看成績(jī)表全部記錄,執(zhí)行語(yǔ)句:
select * from t_score;
4、利用Hive SQL統(tǒng)計(jì)總分與平均分
- 編寫(xiě)Hive SQL語(yǔ)句,進(jìn)行詞頻統(tǒng)計(jì)
- 執(zhí)行命令:
SELECT name, SUM(chinese + math + english + physics + chemistry) AS total_score, (SUM(chinese + math + english + physics + chemistry)) / 5 AS average_score FROM t_score GROUP BY name;
四、拓展練習(xí)
- 改變輸出格式
到了這里,關(guān)于Hive實(shí)戰(zhàn):統(tǒng)計(jì)總分與平均分的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!