RDD Transformation —— sample
原理
sample将RDD这个集合内的元素进行采样,获取所有元素的子集。用户可以设定是否有放回的抽样、百分比、随机种子,进而决定采样方式。
参数说明:
withReplacement=true, 表示有放回的抽样;
withReplacement=false, 表示无放回的抽样。
每个方框是一个RDD分区。通过sample函数,采样50%的数据。V1、V2、U1、U2、U3、U4采样出数据V1和U1、U2,形成新的RDD。
源码
/*** Return a sampled subset of this RDD.*/
def sample(withReplacement: Boolean,fraction: Double,seed: Long = Utils.random.nextLong): RDD[T] = {require(fraction >= 0.0, "Negative fraction value: " + fraction)if (withReplacement) {new PartitionwiseSampledRDD[T, T](this, new PoissonSampler[T](fraction), true, seed)} else {new PartitionwiseSampledRDD[T, T](this, new BernoulliSampler[T](fraction), true, seed)}
}
上手使用
scala> val rdd = sc.makeRDD(1 to 100,2)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[2] at makeRDD at <console>:27scala> rdd.sample(true,0.1,10).collect
res5: Array[Int] = Array(2, 4, 20, 20, 37, 70, 77)scala> rdd.sample(true,0.1,10).collect
res6: Array[Int] = Array(2, 4, 20, 20, 37, 70, 77)scala> rdd.sample(true,0.1,11).collect
res7: Array[Int] = Array(17, 19, 28, 35, 80, 94, 97)scala> rdd.sample(true,0.1,131).collect
res8: Array[Int] = Array(7, 9, 10, 21, 29, 38, 41, 55, 57, 61, 72, 74, 74, 87, 91)scala> rdd.sample(true,0.1,9).collect
res9: Array[Int] = Array(1, 19, 25, 28, 39, 60, 62, 77, 84, 88, 93,
RDD Transformation —— sample相关推荐
- Spark RDD Transformation
RDD Transformation特点 lazy 只记录操作,不计算结果,类似于tensorflow中图的概念 转换 含义 map(func) 返回一个新的RDD,该RDD由每一个输入元素经过fun ...
- RDD -- Transformation算子分析
RDD RDD(Resilient Distributed Datasets) ,弹性分布式数据集, 是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合 ...
- spark rdd Transformation和Action 剖析
1.看到 这篇总结的这么好, 就悄悄的转过来,供学习 wordcount.toDebugString查看RDD的继承链条 所以广义的讲,对任何函数进行某一项操作都可以认为是一个算子,甚至包括求幂次,开 ...
- Spark RDD使用详解3--Value型Transformation算子
处理数据类型为Value型的Transformation算子可以根据RDD变换算子的输入分区与输出分区关系分为以下几种类型: 1)输入分区与输出分区一对一型 2)输入分区与输出分区多对一型 3)输 ...
- RDD之四:Value型Transformation算子
处理数据类型为Value型的Transformation算子可以根据RDD变换算子的输入分区与输出分区关系分为以下几种类型: 1)输入分区与输出分区一对一型 2)输入分区与输出分区多对一型 3)输 ...
- Spark学习之Spark RDD算子
个人主页zicesun.com 这里,从源码的角度总结一下Spark RDD算子的用法. 单值型Transformation算子 map /*** Return a new RDD by applyi ...
- spark的rdd的含义_Spark里边:到底是什么RDD
RDD它是Spark基,它是最根本的数据抽象.http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf 它开着RDD文件.假设英语阅读太 ...
- RDD之一:总体介绍
摘要 本文提出了分布式内存抽象的概念--弹性分布式数据集(RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大 ...
- Spark技术内幕:究竟什么是RDD
RDD是Spark最基本,也是最根本的数据抽象.http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf 是关于RDD的论文.如果觉得英 ...
最新文章
- OSChina 周六乱弹 —— 从恋爱到分手完全没有征兆
- python绘制动态模拟图-Python 模拟生成动态产生验证码图片的方法
- UA OPTI570 量子力学10 位置表象与动量表象
- css hack 学习总结
- APK加壳【3】通用内存加载dex方案分析
- Go image: unknown format 错误解决
- 什么是Ajax和JSON,它们的优缺点
- 《算法竞赛入门经典》 例题 4-1 古老的密码(Ancient Cipher) UVa 1339
- python anylogic_分享 | IE工具与仿真软件学习分享会
- c++ unix time 运行时间_C++编程:c++里时间类型详解 time_t等
- String.intern()使用总结
- 安装eclipse插件sts
- python 时间戳_Python打牢基础,从19个语法开始!
- python编程求n的阶乘_使用Python编程的阶乘
- cacheable中的condition和unless
- Java 游戏自动寻路,老游戏仙境传说RO私服自动寻路求交流(含代码)
- 十月英语——坚持的力量
- Excel隔行插入空白行小技巧
- python 战舰_代码战争战舰受损或沉没Python
- 机器人硬件需求描述标准化
热门文章
- 策略模式(Strategy模式)
- 交战“低代码”,云大厂跑马圈地
- 7种方法实现移动端Retina屏幕1px边框效果
- 2020.11.27哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)
- WindowManager解析(二)Android悬浮框无法弹出输入法的原因和无需权限显示悬浮窗
- Wireshark协议分析从入门到精通(免费版)-陈鑫杰-专题视频课程
- 第5课:实战演示jvm三大性能调优参数:-xms -xmx -xss
- 如何做会说话的班主任
- 市场营销技巧大分享,需要大旁友看过来
- Vue3报错:Failed to fetch dynamically imported module