Spark中的takeSample()函数

时间:2013-02-04 13:47:25

标签: scala random seeding

我正在尝试使用Spark中的takeSample()函数,参数是 - 数据,要采用的样本数和种子。但我不想使用种子。我想每次都有不同的答案。我无法弄明白我该怎么做。我尝试使用System.nanoTime作为种子值,但由于我认为数据类型不匹配,因此它给出了错误。是否有其他类似于takeSample()的函数可以在没有种子的情况下使用?或者我可以使用takeSample()使用任何其他实现,以便每次都获得不同的输出。

3 个答案:

答案 0 :(得分:8)

System.nanoTime的类型为longtakeSample所需的种子属于Int类型。因此,takeSample(..., System.nanoTime.toInt)应该有效。

答案 1 :(得分:1)

System.nanoTime返回Long,而takeSample则返回Int。
您可以将scala.util.Random.nextInt作为种子值提供给takeSample函数。

答案 2 :(得分:1)

从Spark版本1.0.0开始,seed参数是可选的。请参阅https://issues.apache.org/jira/browse/SPARK-1438