[
https://issues.apache.org/jira/browse/SPARK-11284?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16791671#comment-16791671
]
Alex Combessie edited comment on SPARK-11284 at 3/13/19 1:00 PM:
-
Hello everyone, [~ddahlem], [~mengxr]
I am still getting a Type error error when evaluating an ALS model in a
pipeline. I have tested it on Spark 2.2.0.2.6.4.0-91. It is strange as it seems
the issue is closed.
Here is the error message:
_Caused by: java.lang.ClassCastException: java.lang.Float cannot be cast to
java.lang.Double_
Happy to provide more details. I am running the classic MovieLens example on a
100k dataset. Any views on this?
Thanks,
Alex
was (Author: alex_combessie):
Hello everyone,
I am still getting a Type error error when evaluating an ALS model in a
pipeline. I have tested it on Spark 2.2.0.2.6.4.0-91. It is strange as it seems
the issue is closed.
Here is the error message:
_Caused by: java.lang.ClassCastException: java.lang.Float cannot be cast to
java.lang.Double_
Happy to provide more details. I am running the classic MovieLens example on a
100k dataset. Any views on this?
Thanks,
Alex
> ALS produces predictions as floats and should be double
> ---
>
> Key: SPARK-11284
> URL: https://issues.apache.org/jira/browse/SPARK-11284
> Project: Spark
> Issue Type: Bug
> Components: ML
>Affects Versions: 1.5.1
> Environment: All
>Reporter: Dominik Dahlem
>Priority: Major
> Labels: ml, recommender
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> Using pyspark.ml and DataFrames, The ALS recommender cannot be evaluated
> using the RegressionEvaluator, because of a type mis-match between the model
> transformation and the evaluation APIs. One can work around this by casting
> the prediction column into double before passing it into the evaluator.
> However, this does not work with pipelines and cross validation.
> Code and traceback below:
> {code}
> als = ALS(rank=10, maxIter=30, regParam=0.1, userCol='userID',
> itemCol='movieID', ratingCol='rating')
> model = als.fit(training)
> predictions = model.transform(validation)
> evaluator = RegressionEvaluator(predictionCol='prediction',
> labelCol='rating')
> validationRmse = evaluator.evaluate(predictions,
> {evaluator.metricName: 'rmse'})
> {code}
> Traceback:
> validationRmse = evaluator.evaluate(predictions, {evaluator.metricName:
> 'rmse'})
> File
> "/Users/dominikdahlem/software/spark-1.6.0-SNAPSHOT-bin-custom-spark/python/lib/pyspark.zip/pyspark/ml/evaluation.py",
> line 63, in evaluate
> File
> "/Users/dominikdahlem/software/spark-1.6.0-SNAPSHOT-bin-custom-spark/python/lib/pyspark.zip/pyspark/ml/evaluation.py",
> line 94, in _evaluate
> File
> "/Users/dominikdahlem/software/spark-1.6.0-SNAPSHOT-bin-custom-spark/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py",
> line 813, in __call__
> File
> "/Users/dominikdahlem/projects/repositories/spark/python/pyspark/sql/utils.py",
> line 42, in deco
> raise IllegalArgumentException(s.split(': ', 1)[1])
> pyspark.sql.utils.IllegalArgumentException: requirement failed: Column
> prediction must be of type DoubleType but was actually FloatType.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org