spark常用rdd整理


tranformationRDD

轉換 rdd:

map(func) 
返回一個新的RDD,該RDD由每一個輸入元素經過func函數轉換後組成 
filter(func) 
返回一個新的RDD,該RDD由經過func函數計算後返回值爲true的輸入元素組成 
flatMap(func) 
類似於map,但是每一個輸入元素可以被映射爲0或多個輸出元素(所以func應該返回一個序列,而不是單一元素) 
mapPartitions(func) 
類似於map,但獨立地在RDD的每一個分片上運行,因此在類型爲T的RDD上運行時,func的函數類型必須是Iterator[T] => Iterator[U] 
mapPartitionsWithIndex(func) 
類似於mapPartitions,但func帶有一個整數參數表示分片的索引值,因此在類型爲T的RDD上運行時,func的函數類型必須是 
(Int, Interator[T]) => Iterator[U] 
union(otherDataset) 
對源RDD和參數RDD求並集後返回一個新的RDD 
intersection(otherDataset) 
對源RDD和參數RDD求交集後返回一個新的RDD 
distinct([numTasks])) 
對源RDD進行去重後返回一個新的RDD 
groupByKey([numTasks])   
在一個(K,V)的RDD上調用,返回一個(K, Iterator[V])的RDD 
reduceByKey(func, [numTasks]) 
在一個(K,V)的RDD上調用,返回一個(K,V)的RDD,使用指定的reduce函數,將相同key的值聚合到一起,與groupByKey類似,reduce任務的個數可以通過第二個可選的參數來設置 
sortByKey([ascending], [numTasks]) 
在一個(K,V)的RDD上調用,K必須實現Ordered接口,返回一個按照key進行排序的(K,V)的RDD 
sortBy(func,[ascending], [numTasks]) 
與sortByKey類似,但是更靈活 
join(otherDataset, [numTasks]) 
在類型爲(K,V)和(K,W)的RDD上調用,返回一個相同key對應的所有元素對在一起的(K,(V,W))的RDD 
cogroup(otherDataset, [numTasks]) 
在類型爲(K,V)和(K,W)的RDD上調用,返回一個(K,(Iterable<V>,Iterable<W>))類型的RDD 
coalesce(numPartitions)  
減少 RDD 的分區數到指定值。 
repartition(numPartitions) 
重新給 RDD 分區 
repartitionAndSortWithinPartitions(partitioner) 
重新給 RDD 分區,並且每個分區內以記錄的 key 排序 

 

 


actionRDD

動作 rdd:
 
reduce(func) 
reduce將RDD中元素前兩個傳給輸入函數,產生一個新的return值,新產生的return值與RDD中下一個元素(第三個元素)組成兩個元素,再被傳給輸入函數,直到最後只有一個值爲止。 
collect() 
在驅動程序中,以數組的形式返回數據集的所有元素 
count() 
返回RDD的元素個數 
first() 
返回RDD的第一個元素(類似於take(1)) 
take(n) 
返回一個由數據集的前n個元素組成的數組 
takeOrdered(n, [ordering]) 
返回自然順序或者自定義順序的前 n 個元素 
saveAsTextFile(path) 
將數據集的元素以textfile的形式保存到HDFS文件系統或者其他支持的文件系統,對於每個元素,Spark將會調用toString方法,將它裝換爲文件中的文本 
saveAsSequenceFile(path)  
將數據集中的元素以Hadoop sequencefile的格式保存到指定的目錄下,可以使HDFS或者其他Hadoop支持的文件系統。 
saveAsObjectFile(path)  
將數據集的元素,以 Java 序列化的方式保存到指定的目錄下 
countByKey() 
針對(K,V)類型的RDD,返回一個(K,Int)的map,表示每一個key對應的元素個數。 
foreach(func) 
在數據集的每一個元素上,運行函數func 
foreachPartition(func) 
在數據集的每一個分區上,運行函數func 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章