繁体   English   中英

Apache Spark:在GraphX中保留自定义类:无法序列化?

[英]Apache Spark: Hold Custom class in GraphX: Not Serializable?

我有一篇文章课

case class Article(articleName:String,
                   id:Option[Long],
                    authors: Iterator[Author],
                    keywords: Iterator[String])

(作者是一个包含4个字符串选项的类)

我想用它创建一个图。 我创建了顶点的RDD和边的RDD

val vertices: RDD[(VertexId, Article)] = articles.map(article => (article.id.get , article))

当我创建图表时:

val graph = Graph(vertices, edges)

我收到以下错误(缩短):

java.io.NotSerializableException: scala.collection.LinearSeqLike$$anon$1
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)

我不确定我是否理解为什么我不能做我正在做的事情?

您的类不可序列化,因为其中的LinearSeqLike不可序列化。 在Spark群集节点上运行的任务必须序列化才能到达。 我建议使用List或其他一些具体的,可序列化的序列类型,而不是Iterator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM