当前位置:网站首页>spark RDD转换算子 sample
spark RDD转换算子 sample
2022-08-09 02:21:00 【但行益事莫问前程】
sample
函数签名:
def sample(withReplacement: Boolean,fraction: Double,seed: Long = Utils.random.nextLong): RDD[T]
函数说明:
根据指定的规则从数据集中抽取数据,应用于发现倾斜数据解决数据倾斜、预估内存;根据第一个参数可划分为抽取数据不放回和抽取数据放回2种规则
1.抽取数据不放回(伯努利算法)
伯努利算法:又叫0、1分布。例如扔硬币,要么正面,要么反面。
具体实现:根据种子和随机算法算出一个数和第二个参数设置几率比较,小于第二个参数要,大于不要
第一个参数:抽取的数据是否放回,false:不放回
第二个参数:每条数据抽取的几率,范围在[0,1]之间,0:全不取;1:全取;
第三个参数:随机数种子(随机数不随机:随机算法)
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("CZ")
val sc = new SparkContext(sparkConf)
val dataRDD = sc.makeRDD(List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 1)
val newRDD = dataRDD.sample(false, 0.1,1)
newRDD.collect().foreach(println)
sc.stop()
}
运行第一次:
运行第二次:
注:
随机数是通过复杂的数学算法得到的,随机种子(Random Seed)就是这些随机数的初始值。一般计算机里面产生的随机数都是伪随机数。 伪随机数,也是就一个一直不变的数。
2.抽取数据放回(泊松算法)
第一个参数:抽取的数据是否放回,true:放回;
第二个参数:重复数据的几率,范围大于等于0.表示每一个元素被期望抽取到的次数
第三个参数:随机数种子
边栏推荐
猜你喜欢

力扣刷题记录8.1-----206. 反转链表

史上最猛“员工”,疯狂吐槽亿万富翁老板小扎:那么有钱,还总穿着同样的衣服!

Likou Brush Question Record 5.1-----59. Spiral Matrix II

Mysql 5.7 into the pit

SQLite切换日志模式优化

数据库设计的总结

终于有人把灰度发布架构设计讲明白了

数仓第一篇:基础架构

NPDP改版前最后一次考试!请注意

MT4 / MQ4L entry to the master of EA tutorial lesson two (2) - - MQL language commonly used function account information commonly used functions
随机推荐
Electromagnetic radiation safety standards and detection methods
【HNUMSC】C语言第二讲
2022中国眼博会,中国北京国际儿童青少年眼睛健康产业展览会
Latex example reference
边缘计算的三个关键好处
Cyclictest 简介 安装 测试
ROS 、SLAM 学习 error整理
The server quit without updating PID file (/usr/local/mysql/data/localhost.pid).
Apache站点下载大文件自动中断或者文件不完整
最新工业界推荐系统数据集-召回排序模型原理、结构及代码实战整理分享
终于有人把灰度发布架构设计讲明白了
Significance Test--Study Notes
.reduce()的简单例子
Open3D 点云曲率计算
Line segment tree of knowledge
2020.10.13 Development log
Maya engine modeling
虹科技术|如何阻止供应链攻击?
yii2的安装之路
OJ:L2-012 关于堆的判断