本文整理汇总了Scala中org.apache.spark.mllib.random.RandomDataGenerator类的典型用法代码示例。如果您正苦于以下问题:Scala RandomDataGenerator类的具体用法?Scala RandomDataGenerator怎么用?Scala RandomDataGenerator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了RandomDataGenerator类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: RatingGenerator
//设置package包名称以及导入依赖的类
package com.databricks.spark.sql.perf.mllib.data
import org.apache.spark.ml.recommendation.ALS.Rating
import org.apache.spark.mllib.random.RandomDataGenerator
import scala.collection.mutable
class RatingGenerator(
private val numUsers: Int,
private val numProducts: Int,
private val implicitPrefs: Boolean) extends RandomDataGenerator[Rating[Int]] {
private val rng = new java.util.Random()
private val observed = new mutable.HashMap[(Int, Int), Boolean]()
override def nextValue(): Rating[Int] = {
var tuple = (rng.nextInt(numUsers),rng.nextInt(numProducts))
while (observed.getOrElse(tuple,false)){
tuple = (rng.nextInt(numUsers),rng.nextInt(numProducts))
}
observed += (tuple -> true)
val rating = if (implicitPrefs) rng.nextInt(2)*1.0 else rng.nextDouble()*5
new Rating(tuple._1, tuple._2, rating.toFloat)
}
override def setSeed(seed: Long) {
rng.setSeed(seed)
}
override def copy(): RatingGenerator =
new RatingGenerator(numUsers, numProducts, implicitPrefs)
}