无法让评级工作
Unable to get Ratings to work
我对 scala 和 spark 还很陌生,但我对 Python 和其他语言有很多经验。
我遇到一个奇怪的问题,我在包 org.apache.spark.mllib.recommendation.Rating
中使用了一个函数
Zepplin notebook 在遇到这一行时停止执行我的段落,但是我没有收到任何错误消息....
val ratings = spark.sql("SELECT _c0 as user,_c1 as product,_c2 as rating FROM datasetframe").rdd.map {case sql.Row(user: Int, product: Int, rating: Int) => Rating(user.toInt, product.toInt, rating.toInt)}
我尝试重置 Zepplin 并开始新代码,分为多个段落.. 没有任何效果。
我假设我的线路有语法问题,但解释器没有报告它。
有人可以帮忙吗?!
这里是代码的开头:
%spark
import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating
val data = spark.read.option("header", "false").csv("/user/philippe.samson/testing4/part-m-00000")
data.createOrReplaceTempView("datasetframe")
val sqlDF = spark.sql("SELECT * FROM datasetframe")
val ratings = spark.sql("SELECT _c0 as user,_c1 as product,_c2 as rating FROM datasetframe").rdd.map {case sql.Row(user: Int, product: Int, rating: Int) => Rating(user.toInt, product.toInt, rating.toInt)}
我也愿意测试其他方法。
让我知道!
大部分看起来还不错,
使用 Spark 2,你可以通过消除那里的额外值来尝试这样的事情,
case class Rating(name:Int, product:Int, rating:Int)
val spark:SparkSession = ???
val df = spark.read.csv("/path/to/file")
.map({
case Row(u: Int, p: Int, r:Int) => Rating(u, p, r)
})
希望这对您有所帮助。干杯。
我的问题与后面的 NaN 值有关。
我用这个修复了它:
predictions.select([to_null(c).predictions.columns] 中 c 的别名(c)).na.drop()
我还必须导入 "from pyspark.sql.functions import col, isnan, when, trim"
我对 scala 和 spark 还很陌生,但我对 Python 和其他语言有很多经验。 我遇到一个奇怪的问题,我在包 org.apache.spark.mllib.recommendation.Rating
中使用了一个函数Zepplin notebook 在遇到这一行时停止执行我的段落,但是我没有收到任何错误消息....
val ratings = spark.sql("SELECT _c0 as user,_c1 as product,_c2 as rating FROM datasetframe").rdd.map {case sql.Row(user: Int, product: Int, rating: Int) => Rating(user.toInt, product.toInt, rating.toInt)}
我尝试重置 Zepplin 并开始新代码,分为多个段落.. 没有任何效果。 我假设我的线路有语法问题,但解释器没有报告它。
有人可以帮忙吗?!
这里是代码的开头:
%spark
import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel
import org.apache.spark.mllib.recommendation.Rating
val data = spark.read.option("header", "false").csv("/user/philippe.samson/testing4/part-m-00000")
data.createOrReplaceTempView("datasetframe")
val sqlDF = spark.sql("SELECT * FROM datasetframe")
val ratings = spark.sql("SELECT _c0 as user,_c1 as product,_c2 as rating FROM datasetframe").rdd.map {case sql.Row(user: Int, product: Int, rating: Int) => Rating(user.toInt, product.toInt, rating.toInt)}
我也愿意测试其他方法。 让我知道!
大部分看起来还不错, 使用 Spark 2,你可以通过消除那里的额外值来尝试这样的事情,
case class Rating(name:Int, product:Int, rating:Int)
val spark:SparkSession = ???
val df = spark.read.csv("/path/to/file")
.map({
case Row(u: Int, p: Int, r:Int) => Rating(u, p, r)
})
希望这对您有所帮助。干杯。
我的问题与后面的 NaN 值有关。 我用这个修复了它: predictions.select([to_null(c).predictions.columns] 中 c 的别名(c)).na.drop() 我还必须导入 "from pyspark.sql.functions import col, isnan, when, trim"