无法让评级发挥作用

时间:2018-05-10 18:53:07

标签: scala apache-spark apache-spark-sql apache-spark-mllib

我对scala和spark很新,但我对Python和其他语言有很多经验。 我有一个奇怪的问题,我在包中使用的函数org.apache.spark.mllib.recommendation.Rating

Zepplin笔记本停止执行我的段落,但是我没有收到错误消息....

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)}

我也愿意测试其他方法。 让我知道!

1 个答案:

答案 0 :(得分:0)

我的问题与NaN值有关。 我用这个解决了: projections.select([预测中的c的to_null(c).alias(c)])。na.drop() 我也必须导入“从pyspark.sql.functions导入col,isnan,何时修剪”