转自:http://blog.youkuaiyun.com/xiefu5hh/article/details/51781074
对API的解释:
1.1 transform
l map(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集
l filter(func) : 对调用filter的RDD数据集中的每个元素都使用func,然后返回一个包含使func为true的元素构成的RDD
l flatMap(func):和map差不多,但是flatMap生成的是多个结果
l mapPartitions(func):和map很像,但是map是每个element,而mapPartitions是每个partition
l mapPartitionsWithSplit(func):和mapPartitions很像,但是func作用的是其中一个split上,所以func中应该有index
l sample(withReplacement,faction,seed):抽样
l union(otherDataset):返回一个新的dataset,包含源dataset和给定dataset的元素的集合
l distinct([numTasks]):返回一个新的dataset,这个dataset含有的是源dataset中的distinct的element
l groupByKey(numTasks):返回(K,Seq[V]),也就是hadoop中reduce函数接受的key-valuelist
l reduceByKey(func,[numTasks]):就是用一个给定的reduce func再作用在groupByKey产生的(K,Seq[V]),比如求和,求平均数
l sortByKey([ascending],[numTasks]):按照key来进行排序,是升序还是降序,ascending是boolean类型
1.2 action
l reduce(func):说白了就是聚集,但是传入的函数是两个参数输入返回一个值,这个函数必须是满足交换律和结合律的
l collect():一般在filter或者足够小的结果的时候,再用collect封装返回一个数组
l count():返回的是dataset中的element的个数
l first():返回的是dataset中的第一个元素
l take(n):返回前n个elements
l takeSample(withReplacement,num,seed):抽样返回一个dataset中的num个元素,随机种子seed
l saveAsTextFile(path):把dataset写到一个text file中,或者hdfs,或者hdfs支持的文件系统中,spark把每条记录都转换为一行记录,然后写到file中
l saveAsSequenceFile(path):只能用在key-value对上,然后生成SequenceFile写到本地或者hadoop文件系统
l countByKey():返回的是key对应的个数的一个map,作用于一个RDD
l foreach(func):对dataset中的每个元素都使用func