Spark Version: 1.3.1

How can SparkContext not be serializable.
Any suggestions to resolve this issue ?

I included a trait + implementation (implmentation has a method that takes
SC as argument) and i started seeing this exception


trait DetailDataProvider[T1 <: Data] extends java.io.Serializable {

  def getData(sessions: RDD[DetailInputRecord], startDate: Date, endDate:
Date, sc: SparkContext): RDD[(DetailInputRecord, T1)]

}


class ViewItemCountMetrics extends
DetailMetricProvider[ViewItemCountMetric] {

  def getMetrics(details: List[(DetailInputRecord, DataRecord)], sc:
SparkContext) = {

    val totalViCount = details.size.toLong

    val uniqueViCount = details.map(_._1.get("itemId"
).asInstanceOf[Long]).distinct.size.toLong

    new ViewItemCountMetric(totalViCount, uniqueViCount)

  }

}

Any suggestions ?

Logs
====
15/06/25 11:06:58 ERROR yarn.ApplicationMaster: User class threw exception:
Task not serializable
org.apache.spark.SparkException: Task not serializable
at
org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:166)
at org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:158)
at org.apache.spark.SparkContext.clean(SparkContext.scala:1623)
at org.apache.spark.rdd.RDD.map(RDD.scala:286)
at
com.ebay.ep.poc.spark.reporting.process.detail.AbstractInputHelper.processRecords(AbstractInputHelper.scala:126)
at
com.ebay.ep.poc.spark.reporting.process.detail.AbstractInputHelper.execute(AbstractInputHelper.scala:82)
at
com.ebay.ep.poc.spark.reporting.process.service.VIDetailService.execute(VIDetailService.scala:26)
at com.ebay.ep.poc.spark.reporting.SparkApp$.main(SparkApp.scala:50)
at com.ebay.ep.poc.spark.reporting.SparkApp.main(SparkApp.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:480)
*Caused by: java.io.NotSerializableException: org.apache.spark.SparkContext*
*Serialization stack:*
Caused by: java.io.NotSerializableException: org.apache.spark.SparkContext
Serialization stack:
- object not serializable (class: org.apache.spark.SparkContext, value:
org.apache.spark.SparkContext@4f4da28b)
- field (class:
com.ebay.ep.poc.spark.reporting.process.detail.AbstractInputHelper$$anonfun$4,
name: sc$1, type: class org.apache.spark.SparkContext)
- object (class
com.ebay.ep.poc.spark.reporting.process.detail.AbstractInputHelper$$anonfun$4,
<function1>)
at
org.apache.spark.serializer.SerializationDebugger$.improveException(SerializationDebugger.scala:38)
at
org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:47)
at
org.apache.spark.serializer.JavaSerializerInstance.serialize(JavaSerializer.scala:80)
at
org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:164)
... 13 more
15/06/25 11:06:58 INFO yarn.ApplicationMaster: Final app status: FAILED,
exitCode: 15, (reason: User class threw exception: Task not serializable)
15/06/25 11:06:58 INFO yarn.ApplicationMaster: Invoking sc stop from
shutdown hook


-- 
Deepak

Reply via email to