基於Scala的RDD運算

2021-09-25 19:02:02 字數 1338 閱讀 2826

def addone(x:int):int =

//map運算:對rdd中每乙個元素做乙個轉換操作,生成乙個新的rdd

println("使用具體的函式完成map運算:"+intrdd.map(addone).collect().mkstring(","))

println("使用匿名函式完成map運算:"+intrdd.map(x=>x+1).collect().mkstring(","))

println("使用匿名函式和匿名引數完成map運算:"+intrdd.map(_+1).collect().mkstring(","))

println("使用匿名函式完成map運算:"+stringrdd.map(x=>"fruit"+x).collect().mkstring(","))

//filter運算:對rdd中每乙個元素進行篩選,生成乙個新的rdd

println("使用匿名函式篩選intrdd中小於5的元素:"+intrdd.filter(x=>x < 5).collect().mkstring(","))

println("使用匿名函式和匿名引數篩選intrdd中小於5的元素:"+intrdd.filter(_ < 5).collect().mkstring(","))

println("使用匿名函式篩選stringrdd中包含ra的元素:"+stringrdd.filter(x=>x.contains('ra)).collect().mkstring(","))

//distinct運算:對rdd中元素進行去重

println("對intrdd元素進行去重"+intrdd.distinct().collect().mkstring(","))

println("對stringrdd元素進行去重"+stringrdd.distinct().collect().mkstring(","))

//randomsplit運算,按照指定的比例將rdd進行劃分

val srdd = intrdd.randomsplit(array(0.4,0.6))

println("分割後第乙個rdd為:"+srdd(0).collect().mkstring(","))

println("分割後第二個rdd為:"+srdd(1).collect().mkstring(","))

//groupby運算:可以按照傳入的匿名函式規則,將資料分為多個array,返回array[(string,iterable[int])]

val grdd = intrdd.groupby(x => ).collect()

println("偶數陣列為:"+grdd(0))

println("奇數陣列為:"+grdd(1))

scala的RDD語法(隨記嘿嘿)

rdd語法 踩坑日記 map k,v1,v2,v3 最多不能超過兩個數 mapvalues v flatmap filter k,v 條件 後面不能用distinct,應該在前面的map之後用distinct repartition n 重新指定分割槽數 rdd1.union rdd2 全部求並集 ...

基於RDD建立DataFrame

spark sql支援兩種不同的方法用於轉換已存在的rdd成為dataset。第一種方法是使用反射去推斷乙個包含指定的物件型別的rdd的schema。在你的spark應用程式中當你已知schema時這個基於方法的反射可以讓你的 更簡潔。不過這種方法要求你在寫程式時已經知道rdd物件的結構資訊,因為需...

大資料從入門到實戰 RDD的建立 Scala

二 實踐詳解 叮嘟!這裡是小啊嗚的學習課程資料整理。好記性不如爛筆頭,今天也是努力進步的一天。一起加油高階吧!spark提供了兩種建立rdd的方式 1 由乙個已經存在的scala集合進行建立。2 由外部儲存系統的資料集建立,包括本地的檔案系統,還有所有hadoop支援的資料集,比如hdfs cass...