接上篇文章。
共十個需求,前五個是作為學習參考直接給出答案的,後五個本人自己實現的。值得注意的是,如果讀者仔細推敲,需求一到五是存在邏輯上的錯誤的。這裡我暫且照搬。
package movie
import org.apache.spark.rdd.rdd
//求被評分次數最多的 10 部電影,並給出評分次數(電影名,評分次數)
求男性,女性當中評分最高的 10 部電影,從題意上理解應該是分別求男性和女性評分的電影中選平均分最高的前10部電影(下面凡是有關於求評分的均是求平均分,否則就應該錯誤的)。下面求解平均分過程中使用了combinebykey運算元。
由於某種懶的原因,我就不把輸出結果貼出來了。
package movie
//分別求男性,女性當中評分最高的 10 部電影(性別,電影名,影評分)
import org.apache.spark.rdd.rdd
object demand02
}
package movie
//分別求男性,女性看過最多的 10 部電影(性別,電影名)
//年齡段在「18
-24」的男人,最喜歡看 10 部電影
object demand04 ).
map(x=
>
(x._1,1)
)//x._3是string需轉換成int
//求 movieid =
2116 這部電影各年齡段(因為年齡就只有 7 個,就按這個 7 個分就好了)的平均影評(年齡段,影評分)
Spark影評資料分析一
本次所分析的資料有使用者 電影 評分三個表,結構如下 使用者表 電影表 評分表 資料一瞥 一共有十個需求,需求一到五作為學習參考,需求六到十自己動手實踐。專案結構如圖 在分析之前,先建立乙個utils類,主要用於初始化配置資訊以及解析原始資料。記得修改資料檔案路徑 package movie imp...
Spark影評分析
表結構 求被評分次數最多的 10 部電影,並給出評分次數 電影名,評分次數 import org.apache.spark.object test 電影id,電影名 val rate rdd2.map.map x x,1 reducebykey x,y x y sortby x x.2,false,...
spark資料分析 2
首先來理解 0,0 這個初始值 說明aggregate 方法會返回乙個元組,而因為是分布式集群來進行分析,所以第乙個lambda表示式是每個worker所執行的,比如我們有三個worker,那麼他們得到的結果分別是 14,2 8,2 14,2 而第二個lambda表示式則是driver把那三個wor...