从RDD中随机获取一个元素

时间:2016-02-24 08:32:07

标签: scala apache-spark

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

1 个答案:

答案 0 :(得分:8)

您需要使用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)

如果您想要获取相同的&#34;随机&#34;你可以修复种子的元素:

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

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