You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Saisai Shao (JIRA)" <ji...@apache.org> on 2014/06/27 03:24:24 UTC

[jira] [Commented] (SPARK-2104) RangePartitioner should use user specified serializer to serialize range bounds

    [ https://issues.apache.org/jira/browse/SPARK-2104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14045413#comment-14045413 ] 

Saisai Shao commented on SPARK-2104:
------------------------------------

Hi Reynold, is that annoying message you mentioned above?

{quote}
org.apache.spark.SparkException: Job aborted due to stage failure: Task not serializable: java.io.NotSerializableException: $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$JavaNonSerializableClass
{quote}

Seems we can implement writeObject and readObject to use specified serializer like {{ParallelCollectionPartition}}, is that what you want?


> RangePartitioner should use user specified serializer to serialize range bounds
> -------------------------------------------------------------------------------
>
>                 Key: SPARK-2104
>                 URL: https://issues.apache.org/jira/browse/SPARK-2104
>             Project: Spark
>          Issue Type: Bug
>            Reporter: Reynold Xin
>
> Otherwise it is pretty annoying to do a sort on types that are not java serializable. 
> To reproduce, just set the serializer to Kryo, and run the following job:
> {code}
> class JavaNonSerializableClass extends Comparable { override def compareTo(o: JavaNonSerializableClass) = 0 }
> sc.parallelize(Seq(new JavaNonSerializableClass, new JavaNonSerializableClass), 2).map(x => (x,x)).sortByKey()
> {code}
> Basically the partitioner will always be serialized using Java (by the task closure serializer). However, the rangeBounds variable in RangePartitioner should be serialized with the user specified serializer. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)