Rdf 基于多个主题查找三元组(SANSA-STACK)
我有一个使用主题查找三元组的代码,因此我使用了三元组的查找方法,并提供了如下所示的必要信息:Rdf 基于多个主题查找三元组(SANSA-STACK),rdf,jena,triples,sansa,Rdf,Jena,Triples,Sansa,我有一个使用主题查找三元组的代码,因此我使用了三元组的查找方法,并提供了如下所示的必要信息: import net.sansa_stack.rdf.spark.model._ val node1 = NodeFactory.createURI("http://dbpedia.org/resource/Charles_Dickens") val result: RDD[graph.Triple] = triplesRdd.find(Some(node1), None, None)
import net.sansa_stack.rdf.spark.model._
val node1 = NodeFactory.createURI("http://dbpedia.org/resource/Charles_Dickens")
val result: RDD[graph.Triple] = triplesRdd.find(Some(node1), None, None)
但是,如何才能找到可以传递多个主题节点的结果呢
val node1 = NodeFactory.createURI("http://dbpedia.org/resource/Charles_Dickens")
val node2 = NodeFactory.createURI("http://dbpedia.org/resource/Henry_James")
val nodes = List(node1, node2)
//Here I want to pass list of Subject notes
val result = triplesRdd.find(Some(node2),None,None)
尝试此代码并检查它是否有帮助
val node1 = NodeFactory.createURI("http://dbpedia.org/resource/Charles_Dickens")
val node2 = NodeFactory.createURI("http://dbpedia.org/resource/Henry_James")
val nodes = List(node1, node2)
//Just use filter instead of find ,it will create new RDD containing only items matching those provided subjects
val result = tripleRDD.filter(triple => nodes.contains(triple.getSubject))
result.toDF().show(1000,truncate = false)
未经测试,但在我的脑海中,我会说do
triplesRdd.filter(t=>nodes.contains(t.getSubject))
yes@UninformedUser这将起作用