美文网首页
2020-04-27 spark随机采样

2020-04-27 spark随机采样

作者: 破阵子沙场秋点兵 | 来源:发表于2020-04-27 13:52 被阅读0次

    在使用spark.sql(sql)获取dataframe之后使用map函数进行随机负采样时,如果containLabels的类型是可变的Set,那么采样个数会出现随机性,并不受negNum参数限制,而改为ArrayBuffer之后便没有这样的问题。具体原因不知。

    import scala.collection.mutable.{ArrayBuffer, Set => MSet}
    private def calcNegLabels(containLabels: ArrayBuffer[Long], negNum: Int, itemSkuArr: Array[Long]): Set[Long] = {
        val totalLen = containLabels.length + negNum
        val negLabels = MSet[Long]()
        while (containLabels.length < totalLen) {
          val random = Random.nextInt(itemSkuArr.length)
          if (!containLabels.contains(itemSkuArr(random))) {
            containLabels.+=(itemSkuArr(random))
            negLabels.+=(itemSkuArr(random))
          }
        }
        negLabels.toSet
      }
    

    相关文章

      网友评论

          本文标题:2020-04-27 spark随机采样

          本文链接:https://www.haomeiwen.com/subject/zepywhtx.html