spark RDD處理資料集

2021-10-06 02:48:51 字數 1643 閱讀 5728

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對不同的依賴關係有不同的處理方...