当我们在Spark地图中使用IgniteQueue时,如下所示
sparkDataFrame.map(row => {
igniteQueue.put(row)
})
我们得到SparkException:Task不可序列化的异常。这是因为IgniteQueue不是Serializable。
有没有办法让IgniteQueue可序列化?
提前致谢!!!
答案 0 :(得分:1)
您不需要序列化IgniteQueue,您需要将其置于spark任务中,直接来自点燃实例,例如:
JavaIgniteContext<Integer, Integer> igniteContext = new JavaIgniteContext<Integer, Integer>(
sparkContext,"examples/config/spark/example-shared-rdd.xml", false);
Ignite ignite = igniteContext.ignite();
IgniteQueue queue = ignite.queue(name, cap, null);
此外,您可以获取有关Ignite with spark here
的集成信息答案 1 :(得分:0)
您的类是否可以序列化?如果没有,那么使该类可序列化并检查。您用于点燃火花的依赖性和版本是什么?