Spark 提供了很多Transformation
用于创建RDD
,总结如下(Python)
map(func)
将原RDD中每个元素代入带入
func
1 |
>>> rdd = sc.parallelize([1, 2, 3]) |
filter(func)
返回包含所有在
func
中结果为True
1 |
>>> rdd = sc.parallelize([1,2,3]) |
flatMap(func)
将原RDD中的每一个元素映射为0个或者多个元素,每次map过程的返回值必须是集合(可空)
1 |
>>> rdd = sc.parallelize([1,2,3]) |
mapPartitions(func)
将
func
方法分别应用于各个分区
1 |
>>> rdd = sc.parallelize([1,2,3,4], 2) |
mapPartitionsWithIndex(func)
和mapPartitions方法一样,
func
传入参数增加index
1 |
>>> rdd = sc.parallelize([1,2,3,4], 2) |
sample(withReplacement, fraction, seed)
对已有的RDD进行采样,
withReplacement
布尔型, 表示是否用随机值替换fraction
采样比例seed
随机种子数
1 |
>>> rdd = sc.parallelize(range(100)) |
union(RDD)
合并两个已有的RDD,返回新一个的新的RDD
intersection(RDD)
求两个RDD的交集,并去重,会引发洗牌操作
1 |
>>> rdd1 = sc.parallelize([1, 2, 3, 4]) |
distinct()
对RDD的元素去重
groupByKey()
作者: VALUX
链接: http://valux.cn/2015/05/11/bc7bf5dca5cd6d8f/
本文基于署名-非商业性使用-相同方式共享 2.5*许可协议发布,转载请保留本文的署名 Valux 和 原文链接