2023學年完整公開課版RDD常用算子_第1頁
2023學年完整公開課版RDD常用算子_第2頁
2023學年完整公開課版RDD常用算子_第3頁
2023學年完整公開課版RDD常用算子_第4頁
2023學年完整公開課版RDD常用算子_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

RDD常用算子2知識目標RDD常用算子講解RDD常用算子分類01能力目標掌握轉化算子掌握行動算子02學習目標3目錄01Transformation算子02Action算子Transformation算子4Transformation算子Meaning(含義)map(func)對原RDD中每個元素運用

func

函數(shù),并生成新的RDDfilter(func)對原RDD中每個元素使用func

函數(shù)進行過濾,并生成新的RDDflatMap(func)與map類似,但是每一個輸入的item被映射成0個或多個輸出的items(

func

返回類型需要為Seq)。mapPartitions(func)與map類似,但函數(shù)單獨在RDD的每個分區(qū)上運行,

func函數(shù)的類型為Iterator<T>=>Iterator<U>,其中T是RDD的類型,即RDD[T]mapPartitionsWithIndex(func)與mapPartitions類似,但

func

類型為(Int,Iterator<T>)=>Iterator<U>,其中第一個參數(shù)為分區(qū)索引sample(withReplacement,

fraction,

seed)數(shù)據(jù)采樣,有三個可選參數(shù):設置是否放回(withReplacement)、采樣的百分比(fraction)、隨機數(shù)生成器的種子(seed);union(otherDataset)合并兩個RDDintersection(otherDataset)求兩個RDD的交集distinct([numTasks]))去重groupByKey([numTasks])按照key值進行分區(qū),即在一個(K,V)對的dataset上調用時,返回一個(K,Iterable<V>)

Note:

如果分組是為了在每一個key上執(zhí)行聚合操作(例如,sum或average),此時使用

reduceByKey

aggregateByKey

性能會更好

Note:

默認情況下,并行度取決于父RDD的分區(qū)數(shù)??梢詡魅?/p>

numTasks

參數(shù)進行修改。Transformation5reduceByKey(func,[numTasks])按照key值進行分組,并對分組后的數(shù)據(jù)執(zhí)行歸約操作。aggregateByKey(zeroValue,numPartitions)(seqOp,

combOp,[numTasks])當調用(K,V)對的數(shù)據(jù)集時,返回(K,U)對的數(shù)據(jù)集,其中使用給定的組合函數(shù)和zeroValue聚合每個鍵的值。與groupByKey類似,reduce任務的數(shù)量可通過第二個參數(shù)進行配置。sortByKey([ascending],[numTasks])按照key進行排序,其中的key需要實現(xiàn)Ordered特質,即可比較join(otherDataset,[numTasks])在一個(K,V)和(K,W)類型的dataset上調用時,返回一個(K,(V,W))pairs的dataset,等價于內連接操作。如果想要執(zhí)行外連接,可以使用

leftOuterJoin,

rightOuterJoin

fullOuterJoin

等算子。cogroup(otherDataset,[numTasks])在一個(K,V)對的dataset上調用時,返回一個(K,(Iterable<V>,Iterable<W>))tuples的dataset。cartesian(otherDataset)在一個T和U類型的dataset上調用時,返回一個(T,U)類型的dataset(即笛卡爾積)。coalesce(numPartitions)將RDD中的分區(qū)數(shù)減少為numPartitions。repartition(numPartitions)隨機重新調整RDD中的數(shù)據(jù)以創(chuàng)建更多或更少的分區(qū),并在它們之間進行平衡。Action6Action(動作)Meaning(含義)reduce(func)使用函數(shù)func執(zhí)行歸約操作collect()以一個array數(shù)組的形式返回dataset的所有元素,適用于小結果集。count()返回dataset中元素的個數(shù)。first()返回dataset中的第一個元素,等價于take(1)。take(n)將數(shù)據(jù)集中的前

n

個元素作為一個array數(shù)組返回。takeSample(withReplacement,

num,[seed])對一個dataset進行隨機抽樣takeOrdered(n,

[ordering])按自然順序(naturalorder)或自定義比較器(customcomparator)排序后返回前

n個元素。只適用于小結果集,因為所有數(shù)據(jù)都會被加載到驅動程序的內存中進行排序。RDD操作7saveAsTextFile(path)將dataset中的元素以文本文件的形式寫入本地文件系統(tǒng)、HDFS或其它Hadoop支持的文件系統(tǒng)中。Spark將對每個元素調用toString方法,將元素轉換為文本文件中的一行記錄。saveAsSequenceFile(path)將dataset中的元素以HadoopSequenceFile的形式寫入到本地文件系統(tǒng)、HDFS或其它Hadoop支持的文件系統(tǒng)中。該操作要求RDD中的元素需要實現(xiàn)Hadoop的Writable接口。對于Scala語言而言,它可以將Spark中的基本數(shù)據(jù)類型自動隱式轉換為對應Writable類型。(目前僅支持JavaandScala)saveAsObjectFile(path)使用Java

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論