Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 从包含数亿行的文件构建TSV_Ruby_Tsv - Fatal编程技术网

Ruby 从包含数亿行的文件构建TSV

Ruby 从包含数亿行的文件构建TSV,ruby,tsv,Ruby,Tsv,我有一个应用程序需要从一个有两亿行的数据文件构建一个tsv文件 现在,我构建tsv文件的代码如下所示: File.open(data, 'rb').each { |line| row = to_tsv_row(line)) # this formats the row to be delimited by a tab open(tsv_path, "a+") { |f| f << row } } File.open(数据'rb')。每个{

我有一个应用程序需要从一个有两亿行的数据文件构建一个tsv文件

现在,我构建tsv文件的代码如下所示:

File.open(data, 'rb').each { |line|
        row = to_tsv_row(line)) # this formats the row to be delimited by a tab
        open(tsv_path, "a+") { |f| f << row }
      }
File.open(数据'rb')。每个{|行|
row=to_tsv_row(line))#这将格式化要由制表符分隔的行

打开(tsv_路径,“a+”{| f | f您可以使用Ruby的CSV库:

require 'csv'
CSV.open(tsv_path, 'w', col_sep: "\t") do |tsv|
  File.open(data, 'rb').each do |line|
    row = to_row(line) # this only needs to convert line to an array of Objects responding to to_s
    tsv << row
  end
end
需要“csv”
CSV.open(tsv_路径,“w”,col_sep:“\t”)do|tsv|
打开(数据'rb')。每个do |行|
row=to_row(line)#这只需要将line转换为响应的对象数组

tsv不重新打开每行的文件会加快速度。从命令行使用
sed
怎么样?