hmm, I dunno why IntelliJ is unhappy, but you can always fall back to
getting a class from the String:

Class.forName("scala.reflect.ClassTag$$anon$1")

perhaps the class is package private or something, and the repl somehow
subverts it ...

On Tue, Apr 14, 2015 at 5:44 PM, Arun Lists <lists.a...@gmail.com> wrote:

> Hi Imran,
>
> Thanks for the response! However, I am still not there yet.
>
> In the Scala interpreter, I can do:
>
> scala> classOf[scala.reflect.ClassTag$$anon$1]
>
> but when I try to do this in my program in IntelliJ, it indicates an error:
>
> Cannot resolve symbol ClassTag$$anon$1
>
> Hence I am not any closer to making this work. If you have any further
> suggestions, they would be most welcome.
>
> arun
>
>
> On Tue, Apr 14, 2015 at 2:33 PM, Imran Rashid <iras...@cloudera.com>
> wrote:
>
>> Hi Arun,
>>
>> It can be hard to use kryo with required registration because of issues
>> like this -- there isn't a good way to register all the classes that you
>> need transitively.  In this case, it looks like one of your classes has a
>> reference to a ClassTag, which in turn has a reference to some anonymous
>> inner class.  I'd suggest
>>
>> (a) figuring out whether you really want to be serializing this thing --
>> its possible you're serializing an RDD which keeps a ClassTag, but normally
>> you wouldn't want to serialize your RDDs
>> (b) you might want to bring this up w/ chill -- spark offloads most of
>> the kryo setup for all the scala internals to chill, I'm surprised they
>> don't handle this already.  Looks like they still handle ClassManifests
>> which are from pre-scala 2.10:
>> https://github.com/twitter/chill/blob/master/chill-scala/src/main/scala/com/twitter/chill/ScalaKryoInstantiator.scala#L189
>>
>> (c) you can always register these classes yourself, despite the crazy
>> names, though you'll just need to knock these out one-by-one:
>>
>> scala> classOf[scala.reflect.ClassTag$$anon$1]
>>
>> res0: Class[scala.reflect.ClassTag[T]{def unapply(x$1:
>> scala.runtime.BoxedUnit): Option[_]; def arrayClass(x$1: Class[_]):
>> Class[_]}] = class scala.reflect.ClassTag$$anon$1
>>
>> On Mon, Apr 13, 2015 at 6:09 PM, Arun Lists <lists.a...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I am trying to register classes with KryoSerializer. This has worked
>>> with other programs. Usually the error messages are helpful in indicating
>>> which classes need to be registered. But with my current program, I get the
>>> following cryptic error message:
>>>
>>> *Caused by: java.lang.IllegalArgumentException: Class is not registered:
>>> scala.reflect.ClassTag$$anon$1*
>>>
>>> *Note: To register this class use:
>>> kryo.register(scala.reflect.ClassTag$$anon$1.class);*
>>>
>>> How do I find out which class needs to be registered? I looked at my
>>> program and registered all classes used in RDDs. But clearly more classes
>>> remain to be registered if I can figure out which classes.
>>>
>>> Thanks for your help!
>>>
>>> arun
>>>
>>>
>>>
>>
>

Reply via email to