使用Ruby解析大文件

时间:2016-08-30 20:24:38

标签: ruby parsing bigdata

我需要解析非常大的XML文件(接近50GB),我怎么能用Ruby做到这一点?我不可能把它拆分成块,我已经尝试过了。

1 个答案:

答案 0 :(得分:2)

我使用Nokogiri::XML::Reader解析了一个40GB的文件。

我的XML文件的结构:

<?xml version="1.0" encoding="utf-8"?>
<posts>
   <row Id="4">
   <row Id="5">
</posts>

代码:

require 'nokogiri'

fname = "Posts.xml"
xml = Nokogiri::XML::Reader(File.open(fname))
xml.each do |posts|
  posts.each do |post|
    next if post.node_type == 14 # TYPE_SIGNIFICANT_WHITESPACE
    # do something with post
  end
end 

我认为答案取决于您计划如何使用数据。就我而言,我只需要流式传输节点。