Spark RDD操作(Python)总结
来源:互联网 发布:自动识别验证码软件 编辑:程序博客网 时间:2024/05/14 15:36
Spark 提供了很多Transformation
用于创建RDD
,总结如下(Python)
map(func)
将原RDD中每个元素代入带入
func
123
>>> rdd = sc.parallelize([1, 2, 3])>>> rdd.map(lambda x: x*x).collect()[1, 4, 9]
filter(func)
返回包含所有在
func
中结果为True
123
>>> rdd = sc.parallelize([1,2,3])>>> rdd.filter(lambda x: x > 2).collect()[3]
flatMap(func)
将原RDD中的每一个元素映射为0个或者多个元素,每次map过程的返回值必须是集合(可空)
1234
>>> rdd = sc.parallelize([1,2,3])>>> rdd.flatMap(lambda x: range(1, x))// [] || [1] || [1 2][1, 1, 2]
mapPartitions(func)
将
func
方法分别应用于各个分区
12345
>>> rdd = sc.parallelize([1,2,3,4], 2)// 两个分区的数据分别为 [1,2] [3,4]>>> def f(x): yield sum(x)>>> rdd.mapPartitions(f).collect()[3, 7]
mapPartitionsWithIndex(func)
和mapPartitions方法一样,
func
传入参数增加index
12345
>>> rdd = sc.parallelize([1,2,3,4], 2)>>> def f(i, x): yield i*sum(x)>>> rdd.mapPartitionsWithIndex(f).collect()//[0*(1+2), 1*(3+4)][0, 7]
sample(withReplacement, fraction, seed)
对已有的RDD进行采样,
withReplacement
布尔型, 表示是否用随机值替换fraction
采样比例seed
随机种子数
123
>>> rdd = sc.parallelize(range(100))>>> rdd.sample(False, 0.2, 81).count()24
union(RDD)
合并两个已有的RDD,返回新一个的新的RDD
intersection(RDD)
求两个RDD的交集,并去重,会引发洗牌操作
1234
>>> rdd1 = sc.parallelize([1, 2, 3, 4])>>> rdd2 = sc.parallelize([3, 4, 5, 6])>>> rdd1.intersection(rdd2).collect()[3,4]
distinct()
对RDD的元素去重
groupByKey()
作者: VALUX
链接: http://valux.cn/2015/05/11/bc7bf5dca5cd6d8f/
本文基于署名-非商业性使用-相同方式共享 2.5中国大陆许可协议发布,转载请保留本文的署名 Valux 和 原文链接
0 0
- Spark RDD操作(Python)总结
- Python--Spark RDD操作(Python)总结
- Spark RDD操作总结
- [Spark]Spark RDD 指南四 RDD操作
- Spark RDD操作
- spark RDD keyvalue操作
- Spark RDD transformation操作
- spark RDD transformation操作
- spark RDD 基本操作
- spark rdd 操作
- Spark RDD创建操作
- Spark中RDD操作
- Spark RDD基本操作
- spark-RDD集合操作
- Spark RDD基本操作
- spark rdd操作API
- Spark RDD操作讲解
- Spark RDD基础操作
- MyEclipse解决中文乱码问题,统一为UTF-8,及其他设置
- Android高级UI PullToRefresh下拉刷新
- Activity如何使用Handler与Service通信
- 威威猫系列故事——打地鼠
- gridviw的学习
- Spark RDD操作(Python)总结
- vim 匹配不包含某个字符串的行
- 安卓中shape(形状)的应用
- Java抽象类和接口的比较
- Smokeping安装及问题解决
- Problem3-1008
- uboot通过bootargs设置根文件系统的启动位置
- Myelipse 中英文版转换
- Effective Java:类和接口