从RDD中随机获取一个元素



如何有效地从字符串的RDD中随机选择一个元素?

您需要

使用 takeSample 。例:

val data = sc.parallelize(Range(1,100))
// data: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[9] at parallelize at <console>:27
data.takeSample(false,1)
// res9: Array[Int] = Array(38)
data.takeSample(false,1)
// res10: Array[Int] = Array(72)
data.takeSample(false,1)
// res11: Array[Int] = Array(93)

如果您想获取相同的"随机"元素,您可以修复种子:

data.takeSample(false, 1, seed = 10L)
// res14: Array[Int] = Array(62)
data.takeSample(false, 1, seed = 10L)
// res15: Array[Int] = Array(62)

相关内容

最新更新