I don't think it's anything to do with AbstractParams. The problem is
MovieLensALS$Params, which is a case class without default
constructor. It is not Serializable.

However you can see it gets used in an RDD function:

val ratings = sc.textFile(params.input).map { line =>
  val fields = line.split("::")
  if (params.implicitPrefs) {

It it just a matter of rejiggering the code to not pass params.
Have at it; I'm happy to do it too.

On Wed, Nov 5, 2014 at 12:42 AM, Debasish Das <debasish.da...@gmail.com> wrote:
> Hi,
>
> I build the master today and I was testing IR statistics on movielens
> dataset (open up a PR in a bit)...
>
> Right now in the master examples.MovieLensALS, case class Params extends
> AbstractParam[Params]
>
> On my localhost spark, if I run as follows it fails:
>
> ./bin/spark-submit --master spark://
> tusca09lmlvt00c.uswin.ad.vzwcorp.com:7077 --jars
> /Users/v606014/.m2/repository/com/github/scopt/scopt_2.10/3.2.0/scopt_2.10-3.2.0.jar
> --total-executor-cores 4 --executor-memory 4g --driver-memory 1g --class
> org.apache.spark.examples.mllib.MovieLensALS
> ./examples/target/spark-examples_2.10-1.2.0-SNAPSHOT.jar --kryo --lambda
> 0.065 hdfs://localhost:8020/sandbox/movielens/
>
> 2014-11-04 16:00:18.691 java[1811:1903] Unable to load realm mapping info
> from SCDynamicStore
>
> 14/11/04 16:00:18 WARN NativeCodeLoader: Unable to load native-hadoop
> library for your platform... using builtin-java classes where applicable
>
> 14/11/04 16:00:21 WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1,
> tusca09lmlvt00c.uswin.ad.vzwcorp.com): java.io.InvalidClassException:
> org.apache.spark.examples.mllib.MovieLensALS$Params; no valid constructor
>
>
> java.io.ObjectStreamClass$ExceptionInfo.newInvalidClassException(ObjectStreamClass.java:150)
>
>
> java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:768)
>
>
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1772)
>
>         java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>
>
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
>
>
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
>
>
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>
>         java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>
>
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
>
>
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
>
>
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>
>         java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>
>
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
>
>
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
>
>
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>
>         java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>
>         java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
>
>
> org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:62)
>
>
> org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:87)
>
>         org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:57)
>
>         org.apache.spark.scheduler.Task.run(Task.scala:56)
>
>
> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:186)
>
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>
>         java.lang.Thread.run(Thread.java:745)
> If I remove AbstractParams from examples.MovieLensALS and recompile then
> code runs fine:
>
> ./bin/spark-submit --master spark://
> tusca09lmlvt00c.uswin.ad.vzwcorp.com:7077 --jars
> /Users/v606014/.m2/repository/com/github/scopt/scopt_2.10/3.2.0/scopt_2.10-3.2.0.jar
> --total-executor-cores 4 --executor-memory 4g --driver-memory 1g --class
> org.apache.spark.examples.mllib.MovieLensALS
> ./examples/target/spark-examples_2.10-1.2.0-SNAPSHOT.jar --kryo --lambda
> 0.065 hdfs://localhost:8020/sandbox/movielens/
>
> 2014-11-04 16:26:25.359 java[2892:1903] Unable to load realm mapping info
> from SCDynamicStore
>
> 14/11/04 16:26:25 WARN NativeCodeLoader: Unable to load native-hadoop
> library for your platform... using builtin-java classes where applicable
>
> Got 1000209 ratings from 6040 users on 3706 movies.
>
> Training: 800650, test: 199559.
>
> Test RMSE = 0.8525220763317215.
>
> 14/11/04 16:26:41 ERROR ConnectionManager: Corresponding SendingConnection
> to ConnectionManagerId(tusca09lmlvt00c.uswin.ad.vzwcorp.com,50749) not found
>
> 14/11/04 16:26:42 WARN ConnectionManager: All connections not cleaned up
> Is this a known issue for mllib examples ? If there is no open JIRA for
> this, I can open it up...
>
> Thanks.
> Deb

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@spark.apache.org
For additional commands, e-mail: dev-h...@spark.apache.org

Reply via email to