【问题标题】:takeSample() function in SparkSpark 中的 takeSample() 函数
【发布时间】:2013-01-19 05:35:54
【问题描述】:

我正在尝试使用Spark 中的takeSample() 函数,参数是 - 数据、要采集的样本数和种子。但我不想使用种子。我想每次都有不同的答案。我无法弄清楚我该怎么做。我尝试使用System.nanoTime 作为种子值,但它给出了一个错误,因为我认为数据类型不匹配。有没有其他类似takeSample()的功能不用种子也可以使用?或者是否有任何其他实现我可以与takeSample() 一起使用,这样我每次都会得到不同的输出。

【问题讨论】:

    标签: scala random seeding


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      System.nanoTimelong 类型,takeSample 期望的种子是 Int 类型。因此,takeSample(..., System.nanoTime.toInt) 应该可以工作。

      【讨论】:

      • 在 scala 中 .toInt 应该优先于 .intValue
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-12-23
        • 2015-08-27
        • 1970-01-01
        • 2018-03-16
        • 2016-02-25
        • 2021-01-23
        • 1970-01-01
        • 1970-01-01
        • 2020-01-26
        相关资源
        最近更新 更多