Ruby 从包含数亿行的文件构建TSV
我有一个应用程序需要从一个有两亿行的数据文件构建一个tsv文件 现在,我构建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')。每个{
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
怎么样?