1. 程式人生 > >spark transformation和action運算元

spark transformation和action運算元

spark transformation和action的運算元
map(func)
返回一個新的分散式資料集,由每個原元素經過func函式處理後的新元素組成
filter(func)
返回一個新的資料集,由經過func函式處理後返回值為true的原元素組成
flatMap(func)
類似於map,但是每一個輸入元素,會被對映為0個或多個輸出元素,(因此,func函式的返回值是一個seq,而不是單一元素)
mapPartitions(func)
類似於map,對RDD的每個分割槽起作用,在型別為T的RDD上執行時,func的函式型別必須是Iterator[T]=>Iterator[U]

mapPartitionsWithIndex(func) 和mapPartitions類似,但func帶有一個整數引數表上分割槽的索引值,在型別為T的RDD上執行時,func的函式引數型別必須是(int,Iterator[T])=>Iterator[U]
sample(withReplacement,fraction,seed)
根據給定的隨機種子seed,隨機抽樣出數量為fraction的資料
pipe(command,[envVars])
通過管道的方式對RDD的每個分割槽使用shell命令進行操作,返回對應的結果
union(otherDataSet)
返回一個新的資料集,由原資料集合引數聯合而成
intersection(otherDataset)


求兩個RDD的交集
distinct([numtasks])
返回一個包含源資料集中所有不重複元素的i新資料集
groupByKey([numtasks])
在一個由(K,v)對組成的資料集上呼叫,返回一個(K,Seq[V])對組成的資料集。預設情況下,輸出結果的並行度依賴於父RDD的分割槽數目,如果想要對key進行聚合的話,使用reduceByKey或者combineByKey會有更好的效能
reduceByKey(func,[numTasks])
在一個(K,V)對的資料集上使用,返回一個(K,V)對的資料集,key相同的值,都被使用指定的reduce函式聚合到一起,reduce任務的個數是可以通過第二個可選引數來配置的
sortByKey([ascending],[numTasks])

在型別為(K,V)的資料集上呼叫,返回以K為鍵進行排序的(K,V)對資料集,升序或者降序有boolean型的ascending引數決定
join(otherDataset,[numTasks])
在型別為(K,V)和(K,W)型別的資料集上呼叫,返回一個(K,(V,W))對,每個key中的所有元素都在一起的資料集
cogroup(otherDataset,[numTasks])
在型別為(K,V)和(K,W)型別的資料集上呼叫,返回一個數據集,組成元素為(K,Iterable[V],Iterable[W]) tuples
cartesian(otherDataset)
笛卡爾積,但在資料集T和U上呼叫時,返回一個(T,U)對的資料集,所有元素互動進行笛卡爾積
coalesce(numPartitions)
對RDD中的分割槽減少指定的數目,通常在過濾完一個大的資料集之後進行此操作
repartition(numpartitions)
將RDD中所有records平均劃分到numparitions個partition中

action操作
reduce(func)
通過函式func聚集資料集中的所有元素,這個函式必須是關聯性的,確保可以被正確的併發執行
collect()
在driver的程式中,以陣列的形式,返回資料集的所有元素,這通常會在使用filter或者其它操作後,返回一個足夠小的資料子集再使用
count()
返回資料集的元素個數
first()
返回資料集的第一個元素(類似於take(1))
take(n)
返回一個數組,由資料集的前n個元素組成。注意此操作目前並非並行執行的,而是driver程式所在機器
takeSample(withReplacement,num,seed)
返回一個數組,在資料集中隨機取樣num個元素組成,可以選擇是否用隨機數替換不足的部分,seed用於指定的隨機數生成器種子
saveAsTextFile(path)
將資料集的元素,以textfile的形式儲存到本地檔案系統hdfs或者任何其他hadoop支援的檔案系統,spark將會呼叫每個元素的toString方法,並將它轉換為檔案中的一行文字
takeOrderd(n,[ordering])
排序後的limit(n)
saveAsSequenceFile(path)
將資料集的元素,以sequencefile的格式儲存到指定的目錄下,本地系統,hdfs或者任何其他hadoop支援的檔案系統,RDD的元素必須由key-value對組成。並都實現了hadoop的writable介面或隱式可以轉換為writable
saveAsObjectFile(path)
使用java的序列化方法儲存到本地檔案,可以被sparkContext.objectFile()載入
countByKey()
對(K,V)型別的RDD有效,返回一個(K,Int)對的map,表示每一個可以對應的元素個數
foreache(func)
在資料集的每一個元素上,執行函式func,t通常用於更新一個累加器變數,或者和外部儲存系統做互動

相關推薦

spark transformationaction運算元

spark transformation和action的運算元 map(func) 返回一個新的分散式資料集,由每個原元素經過func函式處理後的新元素組成 filter(func) 返回一個新的資料集,由經過func函式處理後返回值為true的原元素組

Spark TransformationAction運算元速查表

Transformation運算元 Transformation運算元 作用 map(func) 返回一個新的分散式資料集,其中每個元素都是由源RDD中每一個元素經過fun

總結常用的Transformation運算元Action運算元,及基本用法

只有是Action時,才會執行立即操作。 Transformation是 lazy的操作,不會立即執行,執行Transformation的運算元時,會返回一個新的RDD,依賴上一個RDD transformation: 1、sortBy : 對於RDD的是非元組型,rdd1.soreB

Spark程式設計指南之一:transformationaction等RDD基本操作

文章目錄 基本概念 開發環境 程式設計實戰 初始化SparkContext RDD的生成 RDD基本操作 Key-Value Pairs Transformations f

Spark核心程式設計建立RDD及transformationaction詳解案例

建立RDD 進行Spark核心程式設計時,首先要做的第一件事,就是建立一個初始的RDD。該RDD中,通常就代表和包含了Spark應用程式的輸入源資料。然後在建立了初始的RDD之後,才可以通過Spark Core提供的transformation運算元,對該RD

transformationaction運算元簡介

transformation運算元 map(func) 返回一個新的分散式資料集,由每個原元素經過func函式處理後的新元素組成 filter(func) 返回一個新的資料集,由經過func函式處理後返回值為true的原元素組成 flatMap(func) 類似於map,但是每一個輸入元素,會

Sparktransformationaction算子簡介

一個 算子 filter true 組成 實現 並行 ont key transformation算子 map(func) 返回一個新的分布式數據集,由每個原元素經過func函數處理後的新元素組成 filter(func) 返回一個新的數據集,由經過func函數處理後返回

spark常用函式:transformationaction

1、RDD提供了兩種型別的操作:transformation和action 所有的transformation都是採用的懶策略,如果只是將transformation提交是不會執行計算的,計算只有在action被提交的時候才被觸發。 1)transformation操作:得

Sparktransformationaction操作

1.前言: RDD:彈性分散式資料集,是一種特殊集合、支援多種來源、有容錯機制、可以被快取、支援並行操作,一個RDD代表多個分割槽裡的資料集 RDD有兩種操作運算元: Transformation(轉換):Transformation屬於

spark2的transformationaction操作

spark支援兩種RDD操作:transformation和action操作。 transformation操作會針對已有RDD建立一個新的RDD,而action則對RDD進行最後的操作,如遍歷、儲存到檔案等,並將結果返回到Driver程式。 transformation有lazy特性:若一

03、操作RDD(transformationaction案例實戰)

// 這裡通過textFile()方法,針對外部檔案建立了一個RDD,lines,但是實際上,程式執行到這裡為止,spark.txt檔案的資料是不會載入到記憶體中的。lines,只是代表了一個指向spark.txt檔案的引用。val lines = sc.textFile("spark.txt")// 這裡對

spark RDDRDD運算元

什麼是RDD? RDD全稱resilient distributed dataset(彈性分散式資料集)。他是一個彈性分散式資料集,是spark裡面抽象的概念。代表的是一個不可變的,集合裡面的元素可以分割槽的支援並行化的操作。 RDD產生的意義在於降低開發分散式應用程式的門檻和提高執行效率。

關於spark RDD trans action運算元、lineage、寬窄依賴詳解

這篇文章想從spark當初設計時為何提出RDD概念,相對於hadoop,RDD真的能給spark帶來何等優勢。之前本想開篇是想總體介紹spark,以及環境搭建過程,但個人感覺RDD更為重要鋪墊在hadoop中一個獨立的計算,例如在一個迭代過程中,除可複製的檔案系統(HDFS)

spark 運算元Transformation and Action

文章目錄 Transformation運算元 Actions運算元 說明:spark 運算元分為兩類:一類是Transformation運算元,一類是Action運算元,其中Transformation運算元不會觸發作業提交,Action運算元會

spark中的actiontransformation

本文提供的是0.7.3版本中的action和transformation介面,RDD提供了兩種型別的操作:transformation和action 1,transformation是得到一個新的RDD,方式很多,比如從資料來源生成一個新的RDD,從RDD生成一個新的RDD

spark運算元TranformationAction的使用demo

在spark中有兩種運算元:Tranformation和Action Tranformation: 中文為轉換,他會延遲載入,當你執行了Tranformation的運算元,spark並不會立即進行計算,而是會記錄計算的元資料,比如你執行如下操作: s

Transformation運算元action運算元,產生shuffle的運算元

Transformation的官方文件方法集合如下: map filter flatMap mapPartitions mapPartitionsWithIndex sample union intersection distinct groupByKey reduceByKey a

spark運算元詳解------Action運算元介紹

本文首發自個人部落格:https://blog.smile13.com/articles/2018/11/30/1543589289882.html 一、無輸出的運算元 1.foreach運算元 功能:對 RDD 中的每個元素都應用 f 函式操作,無返回值。 原始碼:

Spark Transformation —— flatMap運算元

flatMap(func) 類似於map,但是每一個輸入元素,會被對映為0到多個輸出元素(因此,func函式的返回值是一個Seq,而不是單一元素)返回的有點類似於集合的概念,把list,或者array的元素都抽出來,組成一個集合。 第一步和map一樣,最

Spark 兩個RDD按key合併(join運算元cogroup運算元)

在工作中經常遇到需要合併RDD的情況,記錄下處理情況。join和cogroup運算元都能達到要求,按key合併,只是當rdd存在多個相同的key時候,最終的輸出結果不一樣。網上找到了處理情況,自己也測試了,程式碼如下: object Test { def main(ar