如何在火花中使用地图而不实现可序列化?
Posted
技术标签:
【中文标题】如何在火花中使用地图而不实现可序列化?【英文标题】:How to use map in spark without implementing Serializable? 【发布时间】:2020-03-27 06:29:53 【问题描述】:我在代码中使用了map()
,它抛出了NotSerializableException
,所以我实现了Serializable
。
有没有其他方法可以克服这个异常,还是 map 总是使用Serializable
?
Dataset<Row> outdf=indf.map(new MapFunction<Row,Row>()
@Override
public Row call(Row row)
//Calling another function in another class
return r;//r is also a row
,encoder);
【问题讨论】:
在您的解决方案中实现Serializable
的是什么?
我使用这个代码的类。我的类名是 Mapping 所以它的类 Mapping 实现了 Serializable
如果你告诉我们你在哪里使用这个类,它可能会给我们一些线索
【参考方案1】:
在调用函数内部,如果你使用的是 Mapping 类中的某些东西(变量,对象),那么这个 Mapping 类需要实现 Serializable。
请参阅此article。
【讨论】:
以上是关于如何在火花中使用地图而不实现可序列化?的主要内容,如果未能解决你的问题,请参考以下文章
Java SonarQube规则squid:S1948 - 如何使用可序列化列表而不受绑定例如数组列表