【发布时间】:2015-04-24 10:14:33
【问题描述】:
我想从大型 xml 文件 (20 GB) 中读取数据并对其进行操作。我厌倦了使用“xmlParse()”,但它在加载之前给了我内存问题。有什么有效的方法吗?
我的数据转储是这样的,
<tags>
<row Id="106929" TagName="moto-360" Count="1"/>
<row Id="106930" TagName="n1ql" Count="1"/>
<row Id="106931" TagName="fable" Count="1" ExcerptPostId="25824355" WikiPostId="25824354"/>
<row Id="106932" TagName="deeplearning4j" Count="1"/>
<row Id="106933" TagName="pystache" Count="1"/>
<row Id="106934" TagName="jitter" Count="1"/>
<row Id="106935" TagName="klein-mvc" Count="1"/>
</tags>
【问题讨论】:
-
您需要一次在工作区中的整个文档树吗?否则你可以逐行阅读
-
无需一次加载全部数据。我可以逐行阅读并处理它们吗?或者我可以将数据作为块加载,然后处理它们。如果您能提出任何建议,我将不胜感激。
-
您可以使用函数 readLines 并将 n 设置为您要阅读的行数。也应该可以使用 SAX 解析器(您使用的包提供了它)。我可以稍后添加一个示例(这台机器上没有 R)。也许你可以解释更多你想对你的文件做什么,而不是提供一个有意义的例子。
标签: r large-data