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