Hi,

Hadoop Configuration is only Writable, not Java Serializable. You can use 
SerializableWritable (in Spark) to wrap the Configuration to make it 
serializable, and use broadcast variable to broadcast this conf to all the 
node, then you can use it in mapPartitions, rather than  serialize it within 
closure.

You can refer to org.apache.spark.rdd.HadoopRDD, there is a similar usage 
scenario like yours.

Thanks
Jerry.

From: Tobias Pfeiffer [mailto:[email protected]]
Sent: Friday, December 26, 2014 9:38 AM
To: ey-chih chow
Cc: user
Subject: Re: serialization issue with mapPartitions

Hi,

On Fri, Dec 26, 2014 at 10:13 AM, ey-chih chow 
<[email protected]<mailto:[email protected]>> wrote:
I should rephrase my question as follows:

How to use the corresponding Hadoop Configuration of a HadoopRDD in defining
a function as an input parameter to the MapPartitions function?

Well, you could try to pull the `val config = job.getConfiguration()` out of 
the function and just use `config` inside the function, hoping that this one is 
serializable.

Tobias


Reply via email to