大数据全系列 教程
1869个小节阅读:467.9k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
作用:根据指定的规则从数据集中抽取数据。
xxxxxxxxxx
def sample(withReplacement: Boolean, fraction: Double,
seed: Long = Utils.random.nextLong): RDD[T]
代码演示:
xxxxxxxxxx
package com.itbaizhan.rdd
//1.导入类
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
import scala.collection.mutable.ListBuffer
object RddSample {
def main(args: Array[String]): Unit = {
//2.构建SparkConf对象,并设置本地运行和程序名称
val conf: SparkConf = new SparkConf().setMaster("local[1]").
setAppName("sample")
//3.使用conf对象构建SparkContet对象
val sc = new SparkContext(conf)
//5.创建RDD对象
val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4, 5, 6, 7, 9, 0), 1)
//6.抽取数据 Bernoulli伯努利算法
//具体实现:根据种子和随机算法算出一个小数,让它和第二个参数的值进行比较,小于的话就要,大于不要
//第一个参数:抽取的数据是否放回,false:不放回
//第二个参数:抽取的几率,范围在[0,1]之间,0:全不取,1全取
//第三个参数:Utils.random.nextLong 随机种子
/*val rdd1: RDD[Int] = rdd.sample(false, 0.3)
println("0.3:"+rdd1.collect().mkString(","))
println("0:"+rdd.sample(false, 0).collect().mkString(","))
println("0.5:"+rdd.sample(false, 0.5).collect().mkString(","))
println("1:"+rdd.sample(false, 1).collect().mkString(","))*/
//7.抽取数据Poisson 泊松算法 (了解)
//第一个参数:抽取的数据是否放回,true:放回
//第二个参数:表示每一个元素被期望抽取到的次数
//第三个参数:Utils.random.nextLong 随机种子
val rdd2: RDD[Int] = rdd.sample(true, 2)
println("2"+rdd2.collect().mkString(","))
//8.当种子相同(前两个参数的值也相同)时,多次抽取的结果相同
val rdd3: RDD[Int] = rdd.sample(false, 0.3, 6)
val rdd4: RDD[Int] = rdd.sample(false, 0.3, 6)
println(rdd3.collect().mkString(","))
println(rdd4.collect().mkString(","))
val rdd5: RDD[Int] = rdd.sample(true, 2, 3)
val rdd6: RDD[Int] = rdd.sample(true, 2, 3)
println(rdd5.collect().mkString(","))
println(rdd6.collect().mkString(","))
//4.关闭sc对象
sc.stop()
}
}
实时效果反馈
1. 以下关于sample
算子的描述错误的是:
A 第一个参数表示抽取到的数据是否放回,false:不放回,true表示放回。
B 抽取到的数据不放回时,第二个参数表示抽取的几率,范围在[0,1]之间。
C 抽取到的数据放回时,第二个参数表示每一个元素被期望抽取到的次数。
D 第三个参数表示随机数种子,种子相同(前两个参数也相同)时多次抽取得到的结果可能不同。
答案:
1=>D 种子相同结果肯定相同。