根据多个主题查找三元组(SANSA-STACK)

问题描述 投票:1回答:1

我有一个代码可以使用主题来查找三元组,所以我正在使用Triple的find方法并提供必要的内容,例如:

  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)
    

[我有一个代码可以使用一个主题来查找三元组,所以我正在使用Triple的find方法并提供如下必要内容:import net.sansa_stack.rdf.spark.model._ val node1 = NodeFactory...。

rdf jena triples
1个回答
1
投票

尝试此代码并检查是否有帮助,

  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)
© www.soinside.com 2019 - 2024. All rights reserved.