【发布时间】:2016-11-03 16:59:45
【问题描述】:
我正在尝试使用 R 从 Wikipedia Dumps 读取和处理 ~5.8GB .xml。我没有那么多 RAM,所以我想分块处理它。 (目前使用xml2::read_xml 时会完全阻塞我的电脑)
该文件为每个维基百科页面包含一个xml 元素,如下所示:
<page>
<title>AccessibleComputing</title>
<ns>0</ns>
<id>10</id>
<redirect title="Computer accessibility" />
<revision>
<id>631144794</id>
<parentid>381202555</parentid>
<timestamp>2014-10-26T04:50:23Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<comment>add [[WP:RCAT|rcat]]s</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve">#REDIRECT [[Computer accessibility]]
{{Redr|move|from CamelCase|up}}</text>
<sha1>4ro7vvppa5kmm0o1egfjztzcwd0vabw</sha1>
</revision>
</page>
文件样本可以在here找到
从我的角度来看,我认为可以分块读取它,例如文件中每页的页面。 Ans 将每个已处理的page 元素保存为.csv 文件中的一行。
我想要一个包含以下列的 data.frame。
id、标题和文本。
我该如何分块阅读这个.xml?
【问题讨论】:
-
我不确定我们能否解决您的问题。您提供给我们的样本很小,所以我无法真正重现您的问题。您是否尝试过 this(jlhoward 回答)之类的方法?
-
想象一个
.xml有很多很多元素,比如问题中的那个。我不能只逐行阅读,因为它破坏了 xml 结构。我想逐个元素地阅读,但我不知道该怎么做......显然我链接到小样本,但你可以在这里下载完整文件:dumps.wikimedia.org/ptwiki/20161101 这是 ptwiki-20161101-pages-articles .xml.bz2