Hi all,

TLDR: running spark locally through IntelliJ IDEA Scala Console results
in java.lang.ClassNotFoundException

Long version:

I'm an algorithms developer in SupersonicAds - an ad network. We are
building a major new big data project and we are now in the process of
selecting our tech stack & tools.

I'm new to Spark, but I'm very excited about it. It is my opinion that
Spark can be a great tool for us, and that we might be able to build most
of our toolchain on top of it.

We currently develop in Scala and we are using IntelliJ IDEA as our IDE (we
love it). One of the features I love about IDEA is the Scala Console which
lets me work interactively with all of my project's code available and all
of the IDE's features & convenience. That is as opposed to the Scala Shell
& Spark Shell which I dislike because it is based on JLine and doesn't
behave like a good shell would (I cant even Ctrl-c to abort a line without
crashing the whole thing). Of course, as an algo guy, having a good REPL is
crucial to me.

To get started, I added the following line to build.sbt:

> "org.apache.spark" %% "spark-core" % "0.9.1"


Then, added the following main class:

import org.apache.spark.SparkContext
> import org.apache.spark.SparkContext._
>


object Main extends App {
>   val sc = new SparkContext("local", "myApp")
>   val r = sc.parallelize(1 to 1000)
>   println("r.filter(_ % 2 == 1).first() = " + r.filter(_ % 2 == 1).first())
>   println("r.filter(_ % 2 == 1).count() = " + r.filter(_ % 2 == 1).count())
> }


Make, Run, Works perfectly.

Next, I try running the same in the scala console.
Bad news - the last line throws an exception:

> ERROR executor.Executor: Exception in task ID 0
> java.lang.ClassNotFoundException: $line5.$read$$iw$$iw$$iw$$iw$$anonfun$2


It is my guess that for some reason Spark is not able to find the anonymous
function (_ % 2 == 1). Please note I'm running locally so I did not provide
any jars. For some reason when using first() instead of count() it works.
Needless to say it also works in Spark Shell but as I stated, working with
it is not an option.

This issue brings much sadness to my heart, and I could not find a solution
on the mailing list archives or elsewhere. I am hoping someone here might
offer some help.

Thanks,
    Jon

Reply via email to