That should work. Gonna give it a try. Thanks !

On Tue, Aug 12, 2014 at 11:01 AM, Marcelo Vanzin <van...@cloudera.com>
wrote:

> You could create a copy of the variable inside your "Parse" class;
> that way it would be serialized with the instance you create when
> calling map() below.
>
> On Tue, Aug 12, 2014 at 10:56 AM, Sunny Khatri <sunny.k...@gmail.com>
> wrote:
> > Are there any other workarounds that could be used to pass in the values
> > from someVariable to the transformation function ?
> >
> >
> > On Tue, Aug 12, 2014 at 10:48 AM, Sean Owen <so...@cloudera.com> wrote:
> >>
> >> I don't think static members are going to be serialized in the
> >> closure? the instance of Parse will be looking at its local
> >> SampleOuterClass, which is maybe not initialized on the remote JVM.
> >>
> >> On Tue, Aug 12, 2014 at 6:02 PM, Sunny Khatri <sunny.k...@gmail.com>
> >> wrote:
> >> > I have a class defining an inner static class (map function). The
> inner
> >> > class tries to refer the variable instantiated in the outside class,
> >> > which
> >> > results in a NullPointerException. Sample Code as follows:
> >> >
> >> > class SampleOuterClass {
> >> >
> >> >      private static ArrayList<String> someVariable;
> >> >
> >> >      SampleOuterClass() {
> >> >            // initialize someVariable
> >> >      }
> >> >
> >> >     public static class Parse implements Function<...> {
> >> >           public TypeReturn call (...) {
> >> >                   // Try using someVariable: Raises
> NullPointerException
> >> >           }
> >> >     }
> >> >
> >> >     public void run() {
> >> >         RDD<> rdd = data.map(new Parse()).rdd()
> >> >     }
> >> > }
> >> >
> >> > Am I missing something with how Closures work with Spark or something
> >> > else
> >> > is wrong ?
> >> >
> >> > Thanks
> >> > Sunny
> >> >
> >> >
> >
> >
>
>
>
> --
> Marcelo
>

Reply via email to