【问题标题】:SPARQL column headings with different name具有不同名称的 SPARQL 列标题
【发布时间】:2020-05-31 15:13:31
【问题描述】:

我是 SANSA-STACK 的新手,我正在使用 SPARQL Query 对 Triples RDD 执行一些操作,我正在使用带有一些列名的 Select,但是当我完成查询时,列名被更改为一些随机的价值观。

   val query = s""" PREFIX ns0: <https://www.example.com/discovery/catalog/>
                    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

                    SELECT ?ColumnRef
                    WHERE
                    {
                        {<https://www.example.com/db/h2/fred/2020/table/FRED.FRED.US_REGIONS}> ns0:column ?ColumnRef .}
                    }
                """

   val result : sql.DataFrame = triples.sparql(query)


   result.show()

result.show() 的输出改变了列名。

+--------------------+
|                   o|
+--------------------+
|https://www.examp...|
|https://www.examp...|
|https://www.examp...|
|https://www.examp...|
+--------------------+

我是这个技术栈的新手,请告诉我我做错了什么。

【问题讨论】:

标签: sparql jena triples


【解决方案1】:

这是一个适用于我的临时解决方案,它返回具有预期列名称的数据框。通过分解rdd.sparql,可以使用rewrite对象获取列映射:https://gist.github.com/JNKHunter/c16caa882993facb31a273ec274cb8e3

警告:Sansa 查询通常为每个 sparql 选定元素返回多于一列。在这些情况下,此代码只是连接这些列,因为第一列之后的列往往包含空字符串。连接可能不是您想要的,但是我还没有发现那些空字符串数据框列代表什么。

【讨论】:

  • 感谢分享,
  • 更新:不同类型的对象结果存在额外的“空字符串”数据框列。 IntType、StringType、LongType 对象结果在结果数据帧中获得自己的列。
猜你喜欢
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2021-04-04
相关资源
最近更新 更多