2016-07-22 85 views
0

上下文
我目前正在研究涉及osm数据(打开街道地图)的项目。为了操作地理对象,我必须将数据(osm xml文件)转换为对象。 osmar包允许我这样做,但它无法解析原始xml数据。使用XML包解析R中非常大的(10 GB)XML文件时出错

错误

错误膏(文件,崩= “\ n”):结果将超过2^31-1字节

代码

require(osmar) 
osmar_obj <- get_osm("anything", source = osmsource_file("my filename")) 

在get_osm函数中,代码调用ret <- xmlParse(raw),触发器几秒钟后的错误。

问题
我怎么看大的XML文件(这里10GB),知道我有64G的内存?

非常感谢!

+0

˚F或那些想知道的,我检查了R运行的版本,它是一个** 64位**。我还更新了XML包。 – VeilleData

+0

更多细节!在xmlParse函数中,错误发生在第12行:'file = paste(raw,collapse =“\ n”)''。那么,这几乎是错误所说的。 – VeilleData

+0

请使用完整的代码块编辑您的文章,而不是在这里和那里的代码段。 – Parfait

回答

0

这是我提出的解决方案,即使它不是100%满意。

  1. 象以前那样通过在shell
  2. 运行完全相同的代码删除每个换行符(但最后),跳过,不再需要粘贴改造.osm文件(因为你只是做等值壳)

利润:)

很显然,我不是很满意,因为在外壳修改数据文件更多的是一种伎俩,实际的解决方案:(