原理

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相关推荐

  1. Spark RDD Transformation

    RDD Transformation特点 lazy 只记录操作,不计算结果,类似于tensorflow中图的概念 转换 含义 map(func) 返回一个新的RDD,该RDD由每一个输入元素经过fun ...

  2. RDD -- Transformation算子分析

    RDD RDD(Resilient Distributed Datasets) ,弹性分布式数据集, 是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合 ...

  3. spark rdd Transformation和Action 剖析

    1.看到 这篇总结的这么好, 就悄悄的转过来,供学习 wordcount.toDebugString查看RDD的继承链条 所以广义的讲,对任何函数进行某一项操作都可以认为是一个算子,甚至包括求幂次,开 ...

  4. Spark RDD使用详解3--Value型Transformation算子

    处理数据类型为Value型的Transformation算子可以根据RDD变换算子的输入分区与输出分区关系分为以下几种类型: 1)输入分区与输出分区一对一型  2)输入分区与输出分区多对一型  3)输 ...

  5. RDD之四:Value型Transformation算子

    处理数据类型为Value型的Transformation算子可以根据RDD变换算子的输入分区与输出分区关系分为以下几种类型: 1)输入分区与输出分区一对一型  2)输入分区与输出分区多对一型  3)输 ...

  6. Spark学习之Spark RDD算子

    个人主页zicesun.com 这里,从源码的角度总结一下Spark RDD算子的用法. 单值型Transformation算子 map /*** Return a new RDD by applyi ...

  7. spark的rdd的含义_Spark里边:到底是什么RDD

    RDD它是Spark基,它是最根本的数据抽象.http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf 它开着RDD文件.假设英语阅读太 ...

  8. RDD之一:总体介绍

    摘要 本文提出了分布式内存抽象的概念--弹性分布式数据集(RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大 ...

  9. Spark技术内幕:究竟什么是RDD

    RDD是Spark最基本,也是最根本的数据抽象.http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf 是关于RDD的论文.如果觉得英 ...

最新文章

  1. OSChina 周六乱弹 —— 从恋爱到分手完全没有征兆
  2. python绘制动态模拟图-Python 模拟生成动态产生验证码图片的方法
  3. UA OPTI570 量子力学10 位置表象与动量表象
  4. css hack 学习总结
  5. APK加壳【3】通用内存加载dex方案分析
  6. Go image: unknown format 错误解决
  7. 什么是Ajax和JSON,它们的优缺点
  8. 《算法竞赛入门经典》 例题 4-1 古老的密码(Ancient Cipher) UVa 1339
  9. python anylogic_分享 | IE工具与仿真软件学习分享会
  10. c++ unix time 运行时间_C++编程:c++里时间类型详解 time_t等
  11. String.intern()使用总结
  12. 安装eclipse插件sts
  13. python 时间戳_Python打牢基础,从19个语法开始!
  14. python编程求n的阶乘_使用Python编程的阶乘
  15. cacheable中的condition和unless
  16. Java 游戏自动寻路,老游戏仙境传说RO私服自动寻路求交流(含代码)
  17. 十月英语——坚持的力量
  18. Excel隔行插入空白行小技巧
  19. python 战舰_代码战争战舰受损或沉没Python
  20. 机器人硬件需求描述标准化

热门文章

  1. 策略模式(Strategy模式)
  2. 交战“低代码”,云大厂跑马圈地
  3. 7种方法实现移动端Retina屏幕1px边框效果
  4. 2020.11.27哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)
  5. WindowManager解析(二)Android悬浮框无法弹出输入法的原因和无需权限显示悬浮窗
  6. Wireshark协议分析从入门到精通(免费版)-陈鑫杰-专题视频课程
  7. 第5课:实战演示jvm三大性能调优参数:-xms -xmx -xss
  8. 如何做会说话的班主任
  9. 市场营销技巧大分享,需要大旁友看过来
  10. Vue3报错:Failed to fetch dynamically imported module