Spark RDD操作总结

Spark RDD操作可以分为2种:
1.转换(transformation)通过原有RDD生成一个新的RDD,转换不会立即执行,直到下一次action
具体有以下函数:
map(func):对调用RDD种的每个元素使用map函数,然后返回到一个新的RDD中
filter(func):对调用RDD中的每个元素使用filter函数,然后返回到一个包含满足filter函数元素的RDD
flatMap(func):和map差不多,不同的是flatMap会先执行map操作,然后将map结果合并为一个对象
mapPartitions(func):和map差不多,不同的是,map针对每个元素,mapPartitions是每个分区
sample(withReplacement,fraction,seed):抽样,withReplacement=true,表示有放回的抽样。 withReplacement=false,表示无放回的抽样。 根据fraction指定的比例,对数据进行采样,可以选择是否用随机数进行替换,seed用于指定随机数生成器种子
union(otherDataset):返回一个新的dataset,包含源dataset和给定dataset的元素的集合
distinct([numTasks]):返回一个新的dataset,包含去重之后的之后的元素
groupByKey([numTasks]):返回(K,Seq[V]),即hadoop中reduce函数接受的key-valuelist
reduceByKey(func,[numTasks]):用一个给定的reduce函数,作用在groupByKey产生的(K,Seq[V]),比如求平均数和求和
sortByKey([ascending],[numTasks]):按Key来进行排序,ascending是boolean类型
join(otherDataset,[numTasks]):当2个key,value的dataset(K,V)和(K,W),返回的结果为(K,(V,W))的dataset,numTasks为并发任务数
cogroup():当有2个KV的dataset(K,V)和(K,W),返回的是(K,Seq[V],Seq[W])
cartesian():笛卡儿积
2.action(动作)在RDD上运行计算后,返回结果给driver或写入文件系统,触发Job
reduce(func):聚集,传入的函数是两个参数输入,返回一个值
collect():一般在数据集不大的时候,用collect返回一个数组
count():统计dataset中元素的个数
first():返回dataset的第一个元素
take(n):返回dataset前n个元素,有driver返回
foreach():遍历dataset中的元素
countByKey():通过key统计个数的一个map
takeSample(withReplacement,num,seed):抽样返回一个dataset中num个元素,随机种子seed
saveAsTextFile(path):返回dataset结果到一个textfile
saveAsSequenceFile(path):只能用于Key-value对上,生成的SequenceFile写到本地或者HDFS
saveAsObjectFile(path):把dataset写到一个java序列化的文件中,可以用SparkContext.objectFile()加载

你可能感兴趣的:(Spark RDD操作总结)