使用 XML 包在 R 中解析一个非常大的 (10 GB) XML 文件时出错

Error while parsing a very large (10 GB) XML file in R, using the XML package

上下文
我目前正在从事一个涉及 osm 数据(Open Street Map)的项目。为了操作地理对象,我必须将数据(一个 osm xml 文件)转换成一个对象。 osmar 包允许我这样做,但它无法解析原始 xml 数据。

错误

Error in paste(file, collapse = "\n") : result would exceed 2^31-1 bytes

代码

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

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

问题
知道我有 64G 的内存,我应该如何读取一个大的 XML 文件(这里是 10GB)?

Thanks a lot !

这是我想出的解决方案,尽管不是 100% 令人满意。

  1. 通过删除 shell
  2. 中的每个换行符(但最后一个换行符)来转换 .osm 文件
  3. 运行 与以前完全相同的代码,跳过不再需要的粘贴(因为您刚刚在 shell 中做了等效的代码)

利润:)

显然,我对此不是很满意,因为在 shell 中修改数据文件比实际解决方案更像是一个技巧:(