Невозможно получить рейтинги для работы - PullRequest
0 голосов
/ 10 мая 2018

Я довольно плохо знаком с 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)}

Я тоже хочу проверить другой подход.Дайте мне знать!

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

моя проблема была связана со значениями NaN в будущем. Я получил это исправить с помощью этого: Foretions.select ([to_null (c) .alias (c) для c в файлахpretions.columns]). также мне пришлось импортировать "из pyspark.sql.functions import col, isnan, when, trim"

0 голосов
/ 11 мая 2018

По большей части все выглядит хорошо, В 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)
})

Надеюсь, это поможет. Приветствия.

...