If the object cannot be serialized, then I don't think broadcast will make
it magically serializable. You can't transfer data structures between nodes
without serializing them somehow.

On Fri, Aug 7, 2015 at 7:31 AM, Sujit Pal <sujitatgt...@gmail.com> wrote:

> Hi Hao,
>
> I think sc.broadcast will allow you to broadcast non-serializable objects.
> According to the scaladocs the Broadcast class itself is Serializable and
> it wraps your object, allowing you to get it from the Broadcast object
> using value().
>
> Not 100% sure though since I haven't tried broadcasting custom objects but
> maybe worth trying unless you have already and failed.
>
> -sujit
>
>
> On Fri, Aug 7, 2015 at 2:39 AM, Hao Ren <inv...@gmail.com> wrote:
>
>> Is there any workaround to distribute non-serializable object for RDD
>> transformation or broadcast variable ?
>>
>> Say I have an object of class C which is not serializable. Class C is in
>> a jar package, I have no control on it. Now I need to distribute it either
>> by rdd transformation or by broadcast.
>>
>> I tried to subclass the class C with Serializable interface. It works for
>> serialization, but deserialization does not work, since there are no
>> parameter-less constructor for the class C and deserialization is broken
>> with an invalid constructor exception.
>>
>> I think it's a common use case. Any help is appreciated.
>>
>> --
>> Hao Ren
>>
>> Data Engineer @ leboncoin
>>
>> Paris, France
>>
>
>

Reply via email to