package com.hicore.exercise
import org.apache.log4j.
import org.apache.spark.sparkcontext
import org.apache.spark.rdd.rdd
import org.apache.spark.sql.sparksession
/** * @author
* @package
* @date 2020/5/13 17:18
* @version 1.0
* @describe
*/object exercisedemo )
//(13,李逵,男 , 60)
val complex2: rdd[(string, int)] = data.map(x => )
//(12,宋江,男,chinese , 50)
// 過濾出總分大於150的,並求出平均成績 (13,李逵,男,(60,1)) (13,李逵,男,(190,3)) 總成績大於150 (13,李逵,男,63)
val com1: rdd[(string, int)] = complex1.map(x => (x._1, (x._2, 1))).reducebykey((a, b) => (a._1 + b._1, a._2 + b._2)).filter(a => (a._2._1 > 150)).map(t => (t._1, t._2._1 / t._2._2))
// 注意:reducebykey 自定義的函式 是對同乙個key值的value做聚合操作
//(12,楊春,女 , 70)
//(13,王英,女 , 73)
//(12,宋江,男 , 60)
//(13,林沖,男 , 53)
//(13,李逵,男 , 63)
//過濾出 數學大於等於70,且年齡大於等於19歲的學生 filter方法返回乙個boolean值 【數學成績大於70並且年齡》=19】 為了將最後的資料集與com1做乙個join,這裡需要對返回值構造成com1格式的資料
val com2: rdd[(string, int)] = complex2.filter(a => ).map(a => )
//(12,楊春,女 , 70)
//(13,王英,女 , 80)
// val common: rdd[(string, (int, int))] = com1.join(com2)
// common.foreach(println)
// (12,楊春,女 , (70,70))
// (13,王英,女 , (73,80))
// 使用join函式聚合相同key組成的value元組
// 再使用map函式格式化元素
val result: rdd[(string, int)] = com1.join(com2).map(a => (a._1, a._2._1))
//(12,楊春,女,70)
//(13,王英,女,73)
session.stop()
}}
Spark RDD 彈性分布式資料集
rdd是唯讀的 分割槽記錄的集合 乙個rdd的生成只有兩種途徑 rdd具有自動容錯 位置感知和可伸縮性特點 rdd只支援粗粒度轉換,即乙個操作會被應用在rdd的所有資料上 rdd包含 程式設計師還可以從兩個方面控制rdd,即持久化和分割槽。使用者可以請求將rdd快取,這樣執行時將已經計算好的rdd分...
Spark RDD 彈性分布式資料集
rdd是唯讀的 分割槽記錄的集合 乙個rdd的生成只有兩種途徑 rdd具有自動容錯 位置感知和可伸縮性特點 rdd只支援粗粒度轉換,即乙個操作會被應用在rdd的所有資料上 rdd包含 程式設計師還可以從兩個方面控制rdd,即持久化和分割槽。使用者可以請求將rdd快取,這樣執行時將已經計算好的rdd分...
SparkRDD容錯處理
rdd不同的依賴關係 寬依賴 窄依賴 是spark rdd有不同的容錯處理方式 對spark框架層面容錯機制的三大層面 排程層 rdd血統層 checkpoint層 和spark rdd容錯四大核心要點。1 spark rdd容錯原理 rdd的不同依賴關係導致spark對不同的依賴關係有不同的處理方...