今天完成了老師布置的spark實驗4的第一部分,使用的是之前未接觸過的程式設計方式,格式也有很大不同。
一、實驗目的
(1)熟悉 spark 的 rdd 基本操作及鍵值對操作;
(2)熟悉使用 rdd 程式設計解決實際具體問題的方法。
二、實驗平台
作業系統:ubuntu16.04
spark 版本:2.1.0
三、實驗內容和要求
1.spark-shell互動式程式設計
了某大學計算機系的成績,資料格式如下所示:
tom,database,80
tom,algorithm,50
tom,datastructure,60
jim,database,90
jim,algorithm,60
jim,datastructure,80
請根據給定的實驗資料,在 spark-shell 中通過程式設計來計算以下內容:
先新建資料夾sparkdata,將資料檔案上傳到目錄
/root/spark/sparkdata/data01.txt
下(1)該系總共有多少學生;
首先獲取該資料檔案,用.split對資料檔案進行分割並取每行的第一段資料,使用
distinct
去重,計算總數並輸出。
(2)該系共開設來多少門課程;
該操作與上個操作基本一致,唯一的不同就是對資料進行分割時取每行的第二段資料。
(3)tom 同學的總成績平均分是多少;
先找到tom的所有資料,擷取出來並輸出
然後擷取資料取每行資料的第一段和最後一段並將最後一段定義為int型別,mapvalues是對值的操作,不操作key使資料變成(tom,(26,1))
接著需要按key進行
reduce,讓key合併當將
tom進行
reduce
後這裡的
(x,y)
表示的是
(26,1)(12,1),然後對value進行操作,最後輸出。
(4)求每名同學的選修的課程門數;
首先擷取資料並取第一段和第二段資料,然後改變資料的值為(課程,1)
然後將按照key進行合併,將統一
key的值相加,並取其值。
輸出所有人的修課門數
(5)該系 database 課程共有多少人選修;
使用filter記性資料的過濾,讓課程等於
database
並計算資料的行數即可。
(6)各門課程的平均分是多少;
(7)使用累加器計算共有多少人選了 database 這門課。
第13周學習進度
第十三周 所花時間 包括上課 周一 課下閱讀課本1h,課堂聽課2h。周二 團隊召開第二次衝刺計畫會議,商議第二次衝刺階段的功能實現和任務分配 製作任務看板 燃盡圖共1h。週三 早晨開站立會議,更新任務看板,完善燃盡圖以及拍攝工作照共30min。編寫站立會議以部落格30min。學習 如何使用listv...
學習進度筆記
學習進度筆記26 分類演算法 分類演算法屬於監督式學習,使用類標籤已知的樣本建立乙個分類函式或分類模型,應用分類模型,能把資料庫中的類標籤未知的資料進行歸類。分類在資料探勘中是一項重要的任務,目前在商業上應用最多,常見的典型應用場景有流失 精確營銷 客戶獲取 個性偏好等。mllib 目前支援分類演算...
學習進度筆記
學習進度筆記24 讀取檔案演示 import org.apache.spark.sparkconf import org.apache.spark.streaming.import org.apache.spark.streaming.streamingcontext.object fileword...