Spark常用API<Scala>

 

概览

这里只有 Scala 的API,Java 与 Python 请看官方API。

1.转换

Transformation

概念翻译

map(func) 返回每个元素经过 func 方法处理后,所生成的新元素所组成的分布式数据集合(RDD)。
filter(func) 返回一个通过了方法 func 筛选的元素所组成的数据集合;func 返回 true,即代表通过筛选。
flatMap(func) 与 map 相似,不过每一个输入项能够被映射为0个或多个输出项(所以 func 应该返回一个Seq(队列) 而不是一个单项)。
mapPartitions(func) 与 map 相似,但是他是单独运行在 RDD 的每一个分区(块)上,所以假如 RDD 是类型 T 时,则 func 的类型必须为 Iterator<T> => Iterator<U> 。
mapPartitionsWithIndex(func) 与 mapPartitions 相似,但是会另外提供一个整数值代表分区的下标(index), 所以假如 RDD 是类型 T 时,func 的类型必须为 (Int, Iterator<T>) => Iterator<U>.
sample(withReplacement, fraction, seed) 第一参数是指明是否放回,第二个参数是抽取数量,第三个是随机种子。
union(otherDataset) 返回一个包含了源数据集和参数的新数据集
intersection(otherDataset) 返回一个元数据集与参数的相交之后的新的 RDD(就是交集)。
distinct([numTasks]) 对数据集进行去重操作
groupByKey([numTasks]) 当在一个(K,V)数据集上调用他,会返回一个 (K, Iterator<V>) 数据集。 注意 :当你分组他们是为了在每个Key上聚合他们(比如求和或者平均值),使用 reduceByKey 或者 aggregateByKey 将会收益到更高的性能。注意 :输出的并发水平依赖于父 RDD 分区的个数。你能通过可选的 numTasks 参数设置不同的 task 数目。
reduceByKey(func, [numTasks]) 当在一个(K,V)数据集上调用他时,将会返回一个在不同的key上进行了聚合了Value的新的 (K,V) 数据集,聚合的方式是使用 func 方法指定,且必须是 (V,V) => V 类型的。 与 groupByKey 很像,reduce task 的个数是使用第二个可选参数指定的。
aggregateByKey(zeroValue)(seqOp, combOp, [NumTasks]) 当在一个(K,V)类型的数据集上调用他时,他就会返回一个按照 key 来进行聚合后生成的 (K,U) 对,聚合的方式是通过提供一个合并方法和一个中立的“零”值来完成的。允许被聚合的 value 的类型与输入的 value 的类型不一样,这样可以禁止没必要的分配。和 groupByKey相似,reduce task 的个数是使用第二个可选参数指定的。
sortByKey([ascending],[numTasks]) 在(K,V)类型上调用他以实现按 K 排序。返回排序后的键值对。使用第一参数(boolean)值来决定是否为升序。
join(otherDataset, [numTasks]) 通过该方法可以按照 K 来将源数据集合与另一数据集合进行 join 操作。(K, V) 和 (K, W) join结果就是 (K,(V,W))。outer join 就直接使用 leftOuterJoin,rightOuterJoin,fullOuterJoin 。
cogroup(otherDataset,[numTasks]) 当在 (K, V) 类型与 (K, W)类型调用该方法时,会返回一个元祖 (K, (Iterable<V>, Iterable<W>)) 。也可以使用 groupWith 来调用。
cartesian(otherDataset) 当在 T 类型与 U类型 的数据集上调用他,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值