红菊直播官方版-红菊直播免费版app下载-红菊直播永久免费版下载

網(wǎng)站首頁
手機(jī)版

2023國賽中職組大數(shù)據(jù)應(yīng)用與服務(wù)賽項(xiàng)題庫參考答案陸續(xù)更新(高職大數(shù)據(jù) 國賽)

更新時(shí)間:2024-08-09 22:23作者:小樂

題號:試題01 模塊2:數(shù)據(jù)采集與處理(一) 任務(wù)1:數(shù)據(jù)采集與清洗1、子任務(wù)1:數(shù)據(jù)采集

啟動(dòng)Hadoop集群,使用HDFS Shell命令在HDFS根目錄下級聯(lián)創(chuàng)建名為/behavior/origin_log的目錄,用于存儲收集的用戶行為日志;答案:hadoop fs -mkdir -p /behavior/origin_log

目錄創(chuàng)建完成。使用HDFS Shell命令將本地/root/eduhq/data/app_log/behavior目錄下的所有用戶行為日志文件收集到HDFS /behavior/origin_log目錄下;答案:hadoop fs -put /root/eduhq /data/app_log/behavior/* /behavior/origin_log

采集完成后,在本機(jī)打開瀏覽器,訪問http://本地主機(jī)名:9870或http://本地IP地址:9870進(jìn)入HDFS WebUI界面,查看數(shù)據(jù)是否已成功采集到HDFS。答:使用瀏覽器訪問即可。

2. 子任務(wù)2:數(shù)據(jù)清理

在Windows操作系統(tǒng)上使用Excel軟件打開名為“behavior2023-01-01.csv”的文件;

清理數(shù)據(jù)并關(guān)注名為“behavior2023-01-01.csv”的文件中的“時(shí)間”列。將時(shí)間和日期格式分為兩列:日期和時(shí)間?;卮穑?

(2)任務(wù)二:數(shù)據(jù)標(biāo)注開發(fā):開發(fā)一個(gè)簡單的Java類IpToLocUdf,繼承

org.apache.hadoop.hive.ql.udf.generic.GenericUDF,重載了initialize()、evaluate()和getDisplayString()方法;該類需要通過IP實(shí)現(xiàn)從/root/eduhq/data/area.json文件中隨機(jī)獲取“省”和“城市”信息,完成數(shù)據(jù)的分類和標(biāo)注。

答案:導(dǎo)入org.apache.hadoop.hive.ql.exec.UDFArgumentException;

導(dǎo)入org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;

導(dǎo)入org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;

導(dǎo)入org.apache.hadoop.hive.ql.metadata.HiveException;

導(dǎo)入org.apache.hadoop.hive.ql.udf.generic.GenericUDF;

導(dǎo)入org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;

導(dǎo)入org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;

導(dǎo)入org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;

導(dǎo)入org.codehaus.jackson.JsonNode;

導(dǎo)入org.codehaus.jackson.map.ObjectMapper;

導(dǎo)入org.codehaus.jackson.node.ObjectNode;

導(dǎo)入java.io.File;

導(dǎo)入java.io.IOException;

導(dǎo)入java.util.ArrayList;

導(dǎo)入java.util.List;

公共類IpToLocUdf 擴(kuò)展GenericUDF {

私有StringObjectInspector stringInspector;

私有ObjectInspector 輸出OI;

//初始化函數(shù),用于設(shè)置函數(shù)參數(shù)和輸出類型

/*

該初始化方法的主要作用是驗(yàn)證輸入?yún)?shù)的數(shù)量和類型,并將輸出類型設(shè)置為字符串。

如果輸入的參數(shù)不符合要求,則會拋出異常。

最后,它返回一個(gè)輸出類型的ObjectInspector 供其他方法使用。

*/

@覆蓋

公共ObjectInspector 初始化(ObjectInspector []參數(shù))拋出UDFArgumentException {

//檢查參數(shù)個(gè)數(shù)是否為1,如果不是則拋出異常

if (arguments.length !=1) {

拋出新的UDFArgumentLengthException(

'函數(shù)iptoloc(ip) 只接受1 個(gè)參數(shù)。');

}

//檢查第一個(gè)參數(shù)是否為StringObjectInspector類型,如果不是則拋出異常

if (!(arguments[0] StringObjectInspector 實(shí)例)) {

拋出新的UDFArgumentTypeException(0,

'參數(shù)必須是字符串,但是' + argument[0].getTypeName()

+ '已給出。');

}

//將第一個(gè)參數(shù)設(shè)置為字符串類型的ObjectInspector

this.stringInspector=(StringObjectInspector) 參數(shù)[0];

//設(shè)置輸出類型為string,并通過反射創(chuàng)建ObjectInspector實(shí)例

this.outputOI=ObjectInspectorFactory.getReflectionObjectInspector(String.class,

ObjectInspectorFactory.ObjectInspectorOptions.JAVA);

//打印輸出類型的ObjectInspector信息

System.out.println(outputOI);

返回輸出OI; //返回輸出類型的ObjectInspector以供其他方法使用

}

@覆蓋

公共對象評估(DeferredObject []參數(shù))拋出HiveException {

//獲取傳入的IP地址參數(shù)

String ip=stringInspector.getPrimitiveJavaObject(arguments[0].get());

//從指定文件中讀取區(qū)域信息

//文件file=new File('/root/eduhq/data/area.json');

文件file=new File('/resources/area.json');

ObjectMapper 映射器=new ObjectMapper();

列出省份=new ArrayList();

列出城市=new ArrayList();

嘗試{

//解析JSON文件

JsonNode rootNode=mapper.readTree(file);

//遍歷JSON節(jié)點(diǎn)獲取省市信息

for (JsonNode 節(jié)點(diǎn): rootNode) {

String Province=node.path('province').getTextValue();

String city=node.path('city').getTextValue();

省份.add(省份);

城市.add(城市);

}

} catch (IOException e) {

throw new HiveException('無法讀取area.json file:' + e.getMessage(), e);

}

//根據(jù)IP地址進(jìn)行分類和標(biāo)簽

int 索引=ipToIndex(ip);

字符串省份=Provinces.get(index);

字符串城市=城市.get(索引);

//返回分類標(biāo)注結(jié)果

ObjectNode結(jié)果=mapper.createObjectNode();

result.put('省份', 省份);

結(jié)果.put('城市', 城市);

返回結(jié)果.toString();

}

@覆蓋

公共字符串getDisplayString(String[] 兒童) {

返回'iptoloc(' + Children[0] + ')';

}

私有int ipToIndex(字符串ip) {

//根據(jù)IP地址的某種算法得到索引值

//這里我們簡單的使用IP地址的字符長度模擬算法

返回ip.length() % 7;

}

}

org.apache.hive

hive 執(zhí)行程序

3.1.2

(三)任務(wù)三:數(shù)據(jù)統(tǒng)計(jì)1、子任務(wù)一:HDFS文件上傳下載

(1)將包“com.hive.udf”導(dǎo)出為名為hive-udf-behavior-1.0.0.jar的JAR文件并保存在本地

/root/eduhq/udf_jars 目錄;

答案:https://blog.csdn.net/gb4215287/article/details/132793531

(2)將打包后的文件hive-udf-behavior-1.0.0.jar上傳到HDFS的/hive/udf_jars目錄下;

答案:hadoop fs -put hive-udf-behavior-1.0.0.jar /hive/udf_jars

(3)在Hive客戶端中,創(chuàng)建永久函數(shù)url_trans和get_city_by_ip,并與開發(fā)的類關(guān)聯(lián)起來;

答案:添加jar /root/eduhq/udf_jars/hive-udf-behavior-1.0.0.jar

創(chuàng)建函數(shù)url_trans 作為com.hive.udf.url_trans;

創(chuàng)建函數(shù)get_city_by_ip 為com.hive.udf.get_city_by_ip;

(4)在Hive客戶端上,使用select語句測試url_trans和get_city_by_ip函數(shù);

答:根據(jù)具體功能使用。例如:

選擇get_city_by_ip(ip);

(5)啟用Hive的動(dòng)態(tài)分區(qū)功能,并將Hive設(shè)置為非嚴(yán)格模式;

答案:設(shè)置hive.exec.dynamic.partition=true;

設(shè)置hive.exec.dynamic.partition.mode=nostrict;

(6)使用insert overwrite . select .子句將ods_behavior_log表中的數(shù)據(jù)插入到分區(qū)表dwd_behavior_log中,實(shí)現(xiàn)基于dt的動(dòng)態(tài)分區(qū)。

答案:插入覆蓋表dwd_behavior_log PARTITION (dt) select *,date_format(dt,'yyyy-MM-dd') from ods_behavior_log;

2. 子任務(wù)2:數(shù)據(jù)統(tǒng)計(jì)

查看dwd_behavior_log表所有現(xiàn)有分區(qū);答案:顯示分區(qū)dwd_behavior_log;

查看外部表dwd_behavior_log中前3行數(shù)據(jù),驗(yàn)證URL協(xié)議是否統(tǒng)一為“http”,是否可以通過IP獲取“省”和“城市”信息;答案:SELECT * FROM dwd_behavior_log LIMIT 3;

從dwd_behavior_log 選擇URL,其中URL 類似于“http://%”;

返回以“http://”開頭的所有URL。如果返回的行數(shù)大于0,則說明URL協(xié)議統(tǒng)一為“http”。

通過ip獲取省份,例如: select get_city_by_ip(ip);

統(tǒng)計(jì)外部表dwd_behavior_log的數(shù)據(jù)總行數(shù)。答案:從dwd_behavior_log 中選擇COUNT(*);

獲取更多資訊,請聯(lián)系

武漢微眾智能創(chuàng)新科技有限公司

了解更多信息請登錄www.whwzzc.com,咨詢電話13037102709

*本資料中的產(chǎn)品圖片和技術(shù)數(shù)據(jù)僅供參考,如有更新,恕不另行通知。微眾保留對具體內(nèi)容的解釋權(quán)。

為您推薦

英語四六級解析詞匯(帶音標(biāo))i2(大學(xué)英語四六級英語詞匯)

induce [in?dju?s] vt. ①勸使,誘導(dǎo)②導(dǎo)致,引起indulge [in?d?ld?] v. ①放任,縱容,沉溺②使(自己)縱情享受industrious [in?d?stri?s] a. 勤勞的,勤奮的industry

2024-08-09 22:23

嵌入式題庫最全的,去公司面試都會出現(xiàn)(上)(嵌入式 題庫)

現(xiàn)在嵌入式發(fā)展這么快,很多人開始踏上嵌入式學(xué)習(xí)之路,據(jù)市場統(tǒng)計(jì),一般畢業(yè)或者找工作的一些人,在面試公司的時(shí)候,都會在這個(gè)地方卡殼,那就是面試題,很多人都是面試的很好,但是在做面試題的時(shí)候,手下的功夫不夠深,最后被面試題而刷了下來,使得找工

2024-08-09 22:22

2018雅思口語題庫備考練習(xí)(2021年雅思口語題庫5-8月新東方)

2018雅思考試還在進(jìn)行中,口語一直是一大難點(diǎn),丘爾教育為各位考生整理口語題庫,希望對大家有所幫助。一、句式Having a friend like him is _______二、例句Having a friend like him is

2024-08-09 22:22

5月雅思口語新題題庫來啦,烤鴨們快來補(bǔ)充雅思口語換題季小知識

5月第一場雅思考試的口語考試結(jié)束啦,最近有好多烤鴨一直問關(guān)于換題季的一些問題,比如換題季會不會很難,會不會有很多新題出現(xiàn)?為了更好的幫助大家備考,小迪整理了最新口語新題題庫一共6個(gè)Part1+9個(gè)Part2并將一些常識性的東西總結(jié)如下,以供

2024-08-09 22:21

2021考研:魯子問英語教學(xué)論英文版考研課后習(xí)題和答案 魯子問英語教學(xué)論pdf

關(guān)注我!課后習(xí)題詳解Chapter 1?Concepts for English Teaching in SchoolsSection 11. Based on the theories in this unit, what are the

2024-08-09 22:21

考博英語模擬試題——勤篤學(xué)習(xí)網(wǎng)(考博英語答題技巧)

?Passage Two??(1) Perhaps all criminals should be required to carry cards which read: Fragile: Handle with Care. It will

2024-08-09 22:20

加載中...