and to be clear, this is not in the REPL or with Hive (both well known
situations in which these errors arise)

On Mon, Jan 16, 2017 at 11:51 PM, Koert Kuipers <ko...@tresata.com> wrote:

> i am experiencing a ScalaReflectionException exception when doing an
> aggregation on a spark-sql DataFrame. the error looks like this:
>
> Exception in thread "main" scala.ScalaReflectionException: class
> <myclass> in JavaMirror with sun.misc.Launcher$AppClassLoader@28d93b30 of
> type class sun.misc.Launcher$AppClassLoader with classpath [<classpath>]
> not found.
>     at scala.reflect.internal.Mirrors$RootsBase.staticClass(
> Mirrors.scala:123)
>     at scala.reflect.internal.Mirrors$RootsBase.staticClass(
> Mirrors.scala:22)
>     at <my.package>
>     at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe$
> lzycompute(TypeTags.scala:232)
>     at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe(TypeTags.scala:232)
>     at org.apache.spark.sql.SQLImplicits$$typecreator9$1.
> apply(SQLImplicits.scala:127)
>     at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe$
> lzycompute(TypeTags.scala:232)
>     at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe(TypeTags.scala:232)
>     at org.apache.spark.sql.catalyst.encoders.ExpressionEncoder$.
> apply(ExpressionEncoder.scala:49)
>     at org.apache.spark.sql.SQLImplicits.newProductSeqEncoder(
> SQLImplicits.scala:127)
>     at <my.package>
>
>
> some things to note:
> * <claspath> contains driver-class-path as indicated by me using
> spark-submit, and all the jars that spark added. but it does not contain my
> own assembly jar which contains <myclass>
> * the class that is missing is a simple case class that is only used in
> the aggregators on the executors, never driver-side
> * i am running spark 2.1.0 with java 8 on yarn, but i can reproduce the
> same error in local mode
>
> what is this classloader that excludes my jar?
> the error looks somewhat like SPARK-8470, but i am not using hive, and
> spark was not build with hive support.
>
> i can fix the error by adding my assembly jar to driver-classpath, but
> that feels like a hack.
>
> thanks,
> koert
>
>

Reply via email to