【问题标题】:Creating an Array in Spark Scala (seeded)在 Spark Scala 中创建一个数组(种子)
【发布时间】:2016-07-08 07:48:25
【问题描述】:

如何在 Scala 中创建随机种子数组?我想要一个随机数组,但是这个随机数组在整个函数中必须是相同的。

使用scala.util,我们可以做,例如

val arr1 = Array.fill[Float](Random.nextFloat)

但是,arr1 会在每次处理过程中发生变化。

由于我们在 Scala 中也有种子,所以我尝试过这样做:

val rndm = Random(4)
val arr1 = Array.fill[Float](rndm.nextFloat)

不过,即使有种子,它每次都会改变。

【问题讨论】:

    标签: arrays scala random seed


    【解决方案1】:

    使用种子创建随机生成器,

    val r = new scala.util.Random(100)
    

    要重新创建相同的伪随机值序列,您需要“重置”生成器,否则它将向下一个序列添加新的(可能)不同的值,

    scala> val r = new scala.util.Random(100)
    r: scala.util.Random = scala.util.Random@5b1dd206
    
    scala> Array.fill(2)(r.nextFloat)
    res6: Array[Float] = Array(0.7220096, 0.7346627)
    
    scala> val r = new scala.util.Random(100)
    r: scala.util.Random = scala.util.Random@6f371390
    
    scala> Array.fill(2)(r.nextFloat)
    res7: Array[Float] = Array(0.7220096, 0.7346627)
    

    【讨论】:

      猜你喜欢
      • 2018-02-11
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多