Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark MLlib ALS中的非整数ID_Scala_Apache Spark_Apache Spark Mllib - Fatal编程技术网

Scala Spark MLlib ALS中的非整数ID

Scala Spark MLlib ALS中的非整数ID,scala,apache-spark,apache-spark-mllib,Scala,Apache Spark,Apache Spark Mllib,我想用 val ratings = data.map(_.split(',') match { case Array(user,item,rate) => Rating(user.toInt,item.toInt,rate.toFloat) }) val model = ALS.train(ratings,rank,numIterations,alpha) 但是,我得到的用户数据存储的时间一样长。当切换到int时,可能会产生错误。 如何解

我想用

val ratings = data.map(_.split(',') match {
      case Array(user,item,rate)
      =>
        Rating(user.toInt,item.toInt,rate.toFloat)
    })
val model =  ALS.train(ratings,rank,numIterations,alpha)
但是,我得到的用户数据存储的时间一样长。当切换到int时,可能会产生错误。
如何解决该问题?

您可以使用一种支持
长标签的ML实现
RDD
version与其他实现相比,它的用户友好性明显降低:

import org.apache.spark.ml.recommendation.ALS
import org.apache.spark.ml.recommendation.ALS.Rating

val ratings = sc.parallelize(Seq(Rating(1L, 2L, 3.0f), Rating(2L, 3L, 5.0f)))

val (userFactors, itemFactors) = ALS.train(ratings)
并且只返回因子,但
DataFrame
version返回一个模型:

val ratingsDF= ratings.toDF

val alsModel = new ALS().fit(ratingsDF)

在这里,如果用户和项目值是字符串,它会工作吗?字符串应该是什么格式?我尝试了上面的示例,将user和item值作为字符串。当我执行
.fit(ratingsDF)