大数据全系列 教程
1869个小节阅读:467k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
作用:对RDD数据进行随机抽样
xxxxxxxxxx
//withReplacement:true可以重复,false:不能重复。数据位置是否重复不是值
//num:抽样的元素个数
//seed:随机种子,数值型的;RDD元素相同的情况下,相同的种子抽样出的元素也相同
def takeSample(
withReplacement: Boolean,
num: Int,
seed: Long = Utils.random.nextLong): Array[T]
代码演示:
xxxxxxxxxx
package com.itbaizhan.rdd.action
//1.导入类
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object RddTakeSample {
def main(args: Array[String]): Unit = {
//2.构建SparkConf对象,并设置本地运行和程序名称
val conf: SparkConf = new SparkConf().setMaster("local[1]").
setAppName("TakeSample")
//3.使用conf对象构建SparkContet对象
val sc = new SparkContext(conf)
//5.创建RDD对象
val rdd: RDD[Int] = sc.parallelize(List(5, 2, 1, 4, 3, 8, 6, 1))
//6.第一个参数为true表示被抽出的元素返回,所以抽样的元素个数可以超过rdd.count() 元素个数
val result: Array[Int] = rdd.takeSample(true, 10, 2)
println(result.mkString(","))
//7.第一个参数为false表示被抽取出的数据不放回,如果数量>rdd.count()
println(rdd.takeSample(false,10,2).mkString(","))
//8.三个参数的值都一样时,多次抽取结果
println(rdd.takeSample(false,5,3).mkString(","))
println(rdd.takeSample(false,5,3).mkString(","))
//4.关闭sc对象
sc.stop()
}
}
运行结果:
xxxxxxxxxx
4,6,1,8,4,2,8,2,8,4
3,4,5,6,1,1,2,8
1,8,5,1,4
1,8,5,1,4
实时效果反馈
1. 以下关于行动算子takeSample(withReplacement: Boolean,num: Int,seed: Long = Utils.random.nextLong): Array[T]
的描述错误的是:
A withReplacement
true可以重复,false:不能重复。数据位置是否重复不是值。
B num
:抽样的元素个数。
C seed
:随机种子,数值型的;RDD元素相同并且前两个参数的值也分别相同的情况下,相同的种子多次抽样出的元素也不同。
答案:
1=>C 相同