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 
 

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