我有两个CSV文件,一个是3.5GB,另一个是100MB。较大的文件包含两列,我需要将其添加到另一个文件中的另外两列,以生成第三个CSV文件。
这两个文件都包含一个邮政编码列,这就是我试图匹配它们的行的方式。但是,由于文件非常大,操作很慢。我尝试过以两种方式寻找比赛但是他们都很慢:
CSV.foreach('ukpostcodes.csv') do |row|
CSV.foreach('pricepaid.csv') do |item|
if row[1] == item[3]
puts "match"
end
end
end
和
firstFile = CSV.read('pricepaid.csv')
secondFile = CSV.read('ukpostcodes.csv')
post_codes = Array.new
lat_longs = Array.new
firstFile.each do |row|
post_codes << row[3]
end
secondFile.each do |row|
lat_longs << row[1]
end
post_codes.each do |row|
lat_longs.each do |item|
if row == item
puts "Match"
end
end
end
由于CSV文件很大,是否有更有效的方法来处理此任务?