Spark的transformation和action算子簡介

transformation算子

map(func)

返回一個新的分布式數(shù)據(jù)集,由每個原元素經(jīng)過func函數(shù)處理后的新元素組成

創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序設(shè)計、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。

filter(func)

返回一個新的數(shù)據(jù)集,由經(jīng)過func函數(shù)處理后返回值為true的原元素組成

flatMap(func)

類似于map,但是每一個輸入元素,會被映射為0個或多個輸出元素,(因此,func函數(shù)的返回值是一個seq,而不是單一元素)

mapPartitions(func)

類似于map,對RDD的每個分區(qū)起作用,在類型為T的RDD上運(yùn)行時,func的函數(shù)類型必須是Iterator[T]=>Iterator[U]

sample(withReplacement,fraction,seed)

根據(jù)給定的隨機(jī)種子seed,隨機(jī)抽樣出數(shù)量為fraction的數(shù)據(jù)

pipe(command,[envVars])

通過管道的方式對RDD的每個分區(qū)使用shell命令進(jìn)行操作,返回對應(yīng)的結(jié)果

union(otherDataSet)

返回一個新的數(shù)據(jù)集,由原數(shù)據(jù)集合參數(shù)聯(lián)合而成

intersection(otherDataset)

求兩個RDD的交集

distinct([numtasks])

返回一個包含源數(shù)據(jù)集中所有不重復(fù)元素的i新數(shù)據(jù)集

groupByKey([numtasks])

在一個由(K,v)對組成的數(shù)據(jù)集上調(diào)用,返回一個(K,Seq[V])對組成的數(shù)據(jù)集。默認(rèn)情況下,輸出結(jié)果的并行度依賴于父RDD的分區(qū)數(shù)目,如果想要對key進(jìn)行聚合的話,使用reduceByKey或者combineByKey會有更好的性能

reduceByKey(func,[numTasks])

在一個(K,V)對的數(shù)據(jù)集上使用,返回一個(K,V)對的數(shù)據(jù)集,key相同的值,都被使用指定的reduce函數(shù)聚合到一起,reduce任務(wù)的個數(shù)是可以通過第二個可選參數(shù)來配置的

sortByKey([ascending],[numTasks])

在類型為(K,V)的數(shù)據(jù)集上調(diào)用,返回以K為鍵進(jìn)行排序的(K,V)對數(shù)據(jù)集,升序或者降序有boolean型的ascending參數(shù)決定

join(otherDataset,[numTasks])

在類型為(K,V)和(K,W)類型的數(shù)據(jù)集上調(diào)用,返回一個(K,(V,W))對,每個key中的所有元素都在一起的數(shù)據(jù)集

cogroup(otherDataset,[numTasks])

在類型為(K,V)和(K,W)類型的數(shù)據(jù)集上調(diào)用,返回一個數(shù)據(jù)集,組成元素為(K,Iterable[V],Iterable[W]) tuples

cartesian(otherDataset)

笛卡爾積,但在數(shù)據(jù)集T和U上調(diào)用時,返回一個(T,U)對的數(shù)據(jù)集,所有元素交互進(jìn)行笛卡爾積

coalesce(numPartitions)

對RDD中的分區(qū)減少指定的數(shù)目,通常在過濾完一個大的數(shù)據(jù)集之后進(jìn)行此操作

repartition(numpartitions)

將RDD中所有records平均劃分到numparitions個partition中


action算子

reduce(func)

通過函數(shù)func聚集數(shù)據(jù)集中的所有元素,這個函數(shù)必須是關(guān)聯(lián)性的,確??梢员徽_的并發(fā)執(zhí)行

collect()

在driver的程序中,以數(shù)組的形式,返回數(shù)據(jù)集的所有元素,這通常會在使用filter或者其它操作后,返回一個足夠小的數(shù)據(jù)子集再使用

count()

返回數(shù)據(jù)集的元素個數(shù)

first()

返回數(shù)據(jù)集的第一個元素(類似于take(1))

take(n)

返回一個數(shù)組,由數(shù)據(jù)集的前n個元素組成。注意此操作目前并非并行執(zhí)行的,而是driver程序所在機(jī)器

takeSample(withReplacement,num,seed)

返回一個數(shù)組,在數(shù)據(jù)集中隨機(jī)采樣num個元素組成,可以選擇是否用隨機(jī)數(shù)替換不足的部分,seed用于指定的隨機(jī)數(shù)生成器種子

saveAsTextFile(path)

將數(shù)據(jù)集的元素,以textfile的形式保存到本地文件系統(tǒng)hdfs或者任何其他Hadoop支持的文件系統(tǒng),spark將會調(diào)用每個元素的toString方法,并將它轉(zhuǎn)換為文件中的一行文本

takeOrderd(n,[ordering])

排序后的limit(n)

saveAsSequenceFile(path)

將數(shù)據(jù)集的元素,以sequencefile的格式保存到指定的目錄下,本地系統(tǒng),hdfs或者任何其他hadoop支持的文件系統(tǒng),RDD的元素必須由key-value對組成。并都實(shí)現(xiàn)了hadoop的writable接口或隱式可以轉(zhuǎn)換為writable

saveAsObjectFile(path)

使用Java的序列化方法保存到本地文件,可以被sparkContext.objectFile()加載
countByKey()
對(K,V)類型的RDD有效,返回一個(K,Int)對的map,表示每一個可以對應(yīng)的元素個數(shù)

foreach(func)

在數(shù)據(jù)集的每一個元素上,運(yùn)行函數(shù)func,t通常用于更新一個累加器變量,或者和外部存儲系統(tǒng)做交互

文章名稱:Spark的transformation和action算子簡介
標(biāo)題來源:http://bm7419.com/article40/igsjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、面包屑導(dǎo)航、搜索引擎優(yōu)化網(wǎng)站改版、建站公司用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)