首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redland rapper/libraptor2在大型RDF文件上内存不足

redland rapper/libraptor2在大型RDF文件上内存不足
EN

Stack Overflow用户
提问于 2013-10-11 15:51:55
回答 1查看 276关注 0票数 1

我试图使用libraptor2版本2-2.0.10解析Freebase Data Dumps中的海龟转储,但我的程序内存不足。所以,我试着使用"rapper“程序,结果是一样的(内存不足):

代码语言:javascript
复制
#  raptor2-2.0.10/bin/rapper -i turtle -I - -o turtle -O - freebase-rdf-2013-06-02-00-00.ttl > /dev/null

rapper: Parsing URI file:///...ttl with parser turtle and base URI -
rapper: Serializing with serializer turtle
Killed

我观察了内存消耗,它达到了4 4GB,然后就死了。如何限制libraptor/rapper的内存消耗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-11 20:13:00

很可能不是解析导致了您的问题。解析器一次读取输入的一个令牌,当它找到一个三元组时,它将其发送到串行化器。但是,序列化到turtle需要大量内存。序列化程序首先在内存中构建整个图,只有在添加了所有三元组之后,该图才会写出为turtle。

因此,将输出格式从面向图形的海龟更改为一些面向三重的语法,比如ntriples

在评论之后更新。

由于计数模式仍然存在内存问题,一旦解析就会丢弃三元组,这肯定也是解析器内存问题。

不确定您最终想要对数据做什么,但这里有一些可能会有帮助的东西。请注意,freebase数据格式是面向行的“带有海龟名称空间的三元组”,因此使用简单的文本文件处理工具将其处理为更易于管理的块是相对简单的:

  1. 保留从文件头到所有块的@prefix声明。
  2. 在三重位置剪切数据,即换行符边界。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19312997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档