You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Hyukjin Kwon (JIRA)" <ji...@apache.org> on 2018/08/13 01:13:00 UTC

[jira] [Resolved] (SPARK-25090) java.lang.ClassCastException when using a CrossValidator

     [ https://issues.apache.org/jira/browse/SPARK-25090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hyukjin Kwon resolved SPARK-25090.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 2.4.0

Issue resolved by pull request 22076
[https://github.com/apache/spark/pull/22076]

> java.lang.ClassCastException when using a CrossValidator
> --------------------------------------------------------
>
>                 Key: SPARK-25090
>                 URL: https://issues.apache.org/jira/browse/SPARK-25090
>             Project: Spark
>          Issue Type: Bug
>          Components: ML
>    Affects Versions: 2.3.1
>         Environment: Windows 10 64-bits, pyspark 2.3.1 on Anaconda.
>            Reporter: Mark Morrisson
>            Assignee: Marco Gaido
>            Priority: Major
>             Fix For: 2.4.0
>
>
> When I fit a LogisticRegression on a dataset, everything works fine but when I fit a CrossValidator, I get this error:
> py4j.protocol.Py4JJavaError: An error occurred while calling o1187.w.
> : java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
>  at scala.runtime.BoxesRunTime.unboxToDouble(BoxesRunTime.java:114)
>  at org.apache.spark.ml.param.DoubleParam.w(params.scala:330)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>  at java.lang.reflect.Method.invoke(Unknown Source)
>  at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
>  at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
>  at py4j.Gateway.invoke(Gateway.java:282)
>  at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
>  at py4j.commands.CallCommand.execute(CallCommand.java:79)
>  at py4j.GatewayConnection.run(GatewayConnection.java:238)
>  at java.lang.Thread.run(Unknown Source)
> Casting the target variable into double didn't solve the issue.
> Here is the snippet:
> lr = LogisticRegression(maxIter=10, labelCol="class", featuresCol="features", rawPredictionCol="score")
> evaluator = BinaryClassificationEvaluator(rawPredictionCol="score", labelCol="class", metricName="areaUnderROC")
> paramGrid = ParamGridBuilder().addGrid(lr.regParam, [0.01, 0.05, 0.1, 0.5, 1]).build()
> crossval = CrossValidator(estimator=lr, estimatorParamMaps=paramGrid, evaluator=evaluator, numFolds=3)
> bestModel = crossval.fit(train)
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org