Hi Jason,
Models aren't serializable, nor are Graphs (the more system oriented
view of RDF) through Triples, Quads and Node are serializable. You can
send a list of triples.
Or use an RDF syntax and write-then-read the RDF.
But are the models small? RDF graph aren't always small so moving them
around may be expensive.
Andy
On 05/06/2019 17:59, Scarlet Remilia wrote:
Hello everyone,
I get a problem about Jena and Spark.
I use Jena Model to handle some RDF models in my spark executor, but I get a
error:
java.io.NotSerializableException: org.apache.jena.rdf.model.impl.ModelCom
Serialization stack:
- object not serializable (class:
org.apache.jena.rdf.model.impl.ModelCom)
- field (class: org.nari.r2rml.entities.Template, name: model, type:
interface org.apache.jena.rdf.model.Model)
- object (class org.nari.r2rml.entities.Template,
org.nari.r2rml.entities.Template@23dc70c1)
- field (class: org.nari.r2rml.entities.PredicateObjectMap, name:
objectTemplate, type: class org.nari.r2rml.entities.Template)
- object (class org.nari.r2rml.entities.PredicateObjectMap,
org.nari.r2rml.entities.PredicateObjectMap@2de96eba)
- writeObject data (class: java.util.ArrayList)
- object (class java.util.ArrayList,
[org.nari.r2rml.entities.PredicateObjectMap@2de96eba])
- field (class: org.nari.r2rml.entities.LogicalTableMapping, name:
predicateObjectMaps, type: class java.util.ArrayList)
- object (class org.nari.r2rml.entities.LogicalTableMapping,
org.nari.r2rml.entities.LogicalTableMapping@8e00c02)
- field (class: org.nari.r2rml.beans.Impl.EachPartitonFunction, name:
logicalTableMapping, type: class org.nari.r2rml.entities.LogicalTableMapping)
- object (class org.nari.r2rml.beans.Impl.EachPartitonFunction,
org.nari.r2rml.beans.Impl.EachPartitonFunction@1e14b269)
- field (class:
org.apache.spark.sql.Dataset$$anonfun$foreachPartition$2, name: func$4, type:
interface org.apache.spark.api.java.function.ForeachPartitionFunction)
- object (class org.apache.spark.sql.Dataset$$anonfun$foreachPartition$2,
<function1>)
at
org.apache.spark.serializer.SerializationDebugger$.improveException(SerializationDebugger.scala:40)
at
org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:46)
at
org.apache.spark.serializer.JavaSerializerInstance.serialize(JavaSerializer.scala:100)
at
org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:400)
... 33 more
All these classes implement serializable interface.
So how could I serialize Jena model java object?
Thanks very much!
Jason
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10