發現有問題評論區留言~~
課堂測驗1
一、環境要求
sandbox-hdp 2.6.4 或同等版本自建的 Hadoop+Hive+Spark+HBase 開發環境,
二、提交結果要求
1.必須提交原始碼或對應分析陳述句,如不提交則不得分,
2.帶有分析結果的功能,請分析結果的截圖與代碼一同提交,
三、資料描述
這是一份來自于某在線考試系統的學員答題批改日志,日志中記錄了日志生成時間,題目難度系數,題目所屬的知識點 ID,做題的學生 ID,題目 ID 以及作答批改結果,日志的結構如下:
四、功能要求
1.資料準備(10 分)
請在 HDFS 中創建目錄/app/data/exam,并將 answer_question.log 傳到該目錄,
2.在 Spark-Shell 中,加載 HDFS 檔案系統 answer_question.log 檔案,并使用 RDD 完成以下分析,也可使用 Spark 的其他方法完成資料分析,(20 分)
①提取日志中的知識點 ID,學生 ID,題目 ID,作答結果 4 個欄位的值
②將提取后的知識點ID,學生ID,題目 ID,作答結果欄位的值以檔案的形式保存到HDFS的/app/data/result 目錄下,一行保留一條資料,欄位間以“\t”分割,檔案格式如下所示,
(提示:元組可使用 tuple.productIterator.mkString("\t")組合字串,使用其他方法處理資料只要結果正確也給分)
34434481 8195023659599 1018 0
34434425 8195023659599 7385 1
34434457 8195023659596 7346 1
34434498 8195023659597 6672 0
34434449 8195023659594 4809 1
34434489 8195023659596 7998 0.5
34434492 8195023659595 9406 0
34434485 8195023659597 8710 1
3.創建 HBase 資料表(10 分)
在 HBase 中創建命名空間(namespace)exam,在該命名空間下創建 analysis 表,使用學生 ID 作為 RowKey,
該表下有 2 個列族 accuracy、question,accuracy 列族用于保存學員答題正確率統計資料:
( 總分 accuracy:total_score , 答題的試題數 accuracy:question_count,正確率 accuracy:accuracy)
question 列族用于分類保存學員正確, 錯誤和半對的題目 id ( 正確 question:right , 錯誤 question:error , 半對question:half)
4.請在 Hive 中創建資料庫 exam ,在該資料庫中:
創建外部表 ex_exam_record 指向/app/data/result 下Spark 處理后的日志資料 ;
創建外部表ex_exam_anlysis 映射至HBase中的 analysis 表的 accuracy 列族;
創建外部表 ex_exam_question 映射至 HBase 中的analysis 表的 question 列族(20 分)
ex_exam_record 表結構如下:
欄位名稱 欄位型別 欄位含義
topic_id string 知識點 ID
student_id string 學生 ID
question_id string 題目 ID
score float 作答結果
ex_exam_anlysis 表結構如下:
欄位名稱 欄位型別 欄位含義
student_id string 學生 ID
total_score float 總分
question_count int 答題的試題數
accuracy float 正確率
ex_exam_question 表結構如下:
欄位名稱 欄位型別 欄位含義
student_id string 學生 ID
right string 所有作對的題目的 ID 串列
half string 所有半對的題目的 ID 串列
error string 所有做錯的題目的 ID 串列
5.使用 ex_exam_record 表中的資料統計每個學員總分、答題的試題數和正確率,并保存到 ex_exam_anlysis 表中,其中正確率的計算方法如下:正確率=總分/答題的試題數(20 分)
6.使用 ex_exam_record 表中的資料統計每個作對,做錯,半對的題目串列,
①題目 id 以逗號分割,并保存到 ex_exam_question 表中,(10 分)
②完成統計后,在 HBase Shell 中遍歷 exam:analysis 表并只顯示 question 列族中的資料, 如下圖所示(10 分)
enmmmmm就是第一套試卷 此貼終結
截圖 windows+shift+s
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252108.html
標籤:其他
上一篇:MySQL高級-索引的使用及優化
