元素我怎样才能有效地从字符串的RDD随机选择一个元素?获得来自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)
我们可以将System.nanoTime.toInt作为种子吗? –
你可以使用任何你喜欢的种子。然而种子很长,所以你应该给它一个。我不知道为什么@eliasah使用随机种子,因为它是[默认值](https://spark.apache.org/docs/1.5.2/api/scala/index.html#org.apache.spark .rdd.RDD)。 –
这是真的@mlk我不确定,因为我在飞行中编写代码。 – eliasah
- 1. 获得来自
- 2. 获得来自NSURL
- 3. 获得来自dimens.xml
- 4. 获得来自Facebook
- 5. 获得来自URL
- 6. 获得来自ListFragment
- 7. 获得来自mapView.SelectedAnnotations
- 8. 获得来自URL
- 9. 获得来自ext.data.store
- 10. 获得来自gridview2
- 11. 获得来自NSDictionaries
- 12. 获得来自URL
- 13. 获得来自jQuery的
- 14. 获得来自AFNetworking 2.4.1
- 15. 获得来自阵列
- 16. 获得来自外部
- 17. 获得来自意图
- 18. 获得来自阵列
- 19. 获得来自的file_get_contents
- 20. 获得来自控制器
- 21. 获得来自阵列
- 22. 获得来自阵列
- 23. 获得来自阵列
- 24. 获得来自阵列
- 25. 获得来自PayPal沙箱
- 26. 获得来自化身
- 27. 获得来自用户
- 28. 获得来自阵列
- 29. 获得来自阵列
- 30. 获得来自指数
我做到了,在一些非无意义的方式通过映射RDD到zipWithIndex和使用随机的。与计数洗牌和拾取索引 –
['takeSample'](https://spark.apache.org/docs/1.5.2/api/scala/index.html#org.apache.spark.rdd.RDD)? –