在ruby中解析大型CSV文件的最佳方法
在ruby中解析大型CSV文件的最佳方法是什么。我的CSV文件几乎是1GB。我想根据一些条件过滤CSV中的数据。您没有明确说明,但我认为大多数评论人认为这可能是一个家庭作业问题。如果是这样的话,你应该读作“”。如果不是,则改为“” 正如G4143在评论中所说,Ruby有一个非常好的特性,它应该适合您的需要 下面是几个使用在ruby中解析大型CSV文件的最佳方法,ruby,csv,Ruby,Csv,在ruby中解析大型CSV文件的最佳方法是什么。我的CSV文件几乎是1GB。我想根据一些条件过滤CSV中的数据。您没有明确说明,但我认为大多数评论人认为这可能是一个家庭作业问题。如果是这样的话,你应该读作“”。如果不是,则改为“” 正如G4143在评论中所说,Ruby有一个非常好的特性,它应该适合您的需要 下面是几个使用foreach的快速示例,文档中描述了这些示例是读取CSV文件的主要方法。该方法一次读取文件中的一行,因此应该可以很好地处理大型文件。下面是一个基本示例,说明如何使用它过滤Csv
foreach
的快速示例,文档中描述了这些示例是读取CSV文件的主要方法。该方法一次读取文件中的一行,因此应该可以很好地处理大型文件。下面是一个基本示例,说明如何使用它过滤Csv记录的子集,但我鼓励您阅读Csv类文档,并跟进更具体的问题,展示您迄今为止在遇到问题时所做的尝试
基本思想是从一个空数组开始,使用foreach
获取每一行,如果该行符合筛选条件,则添加到最初为空的筛选结果数组中
test.csv:
a, b, c
1,2,3
4,5,6
需要“csv”
过滤=[]
CSV.foreach(“test.CSV”)do|行|
已筛选[[“1”、“2”、“3”]]
如果文件的第一行是“头”,则可以传入一个选项,将其视为:
require 'csv'
filtered = []
CSV.foreach("test.csv", :headers => true) do |row|
filtered << row if row["a"] == "1"
end
filtered
=> [#<CSV::Row "a":"1" " b":"2" " c":"3">]
需要“csv”
过滤=[]
CSV.foreach(“test.CSV”,:headers=>true)do |行|
过滤的
你没有特别说,但我想大多数评论的人都觉得这可能是一个家庭作业问题。如果是这样的话,你应该读作“”。如果不是,则改为“”
正如G4143在评论中所说,Ruby有一个非常好的特性,它应该适合您的需要
下面是几个使用foreach
的快速示例,文档中描述了这些示例是读取CSV文件的主要方法。该方法一次读取文件中的一行,因此应该可以很好地处理大型文件。下面是一个基本示例,说明如何使用它过滤Csv记录的子集,但我鼓励您阅读Csv类文档,并跟进更具体的问题,展示您迄今为止在遇到问题时所做的尝试
基本思想是从一个空数组开始,使用foreach
获取每一行,如果该行符合筛选条件,则添加到最初为空的筛选结果数组中
test.csv:
a, b, c
1,2,3
4,5,6
需要“csv”
过滤=[]
CSV.foreach(“test.CSV”)do|行|
已筛选[[“1”、“2”、“3”]]
如果文件的第一行是“头”,则可以传入一个选项,将其视为:
require 'csv'
filtered = []
CSV.foreach("test.csv", :headers => true) do |row|
filtered << row if row["a"] == "1"
end
filtered
=> [#<CSV::Row "a":"1" " b":"2" " c":"3">]
需要“csv”
过滤=[]
CSV.foreach(“test.CSV”,:headers=>true)do |行|
过滤的
您当前解析它的方式是什么,它的具体问题是什么?你如何衡量“最佳”呢?我试过更聪明的csv和Rcsv宝石。但这也需要很长时间。请给出一个例子来解释这个问题。例如:我有一个csv文件,其中包含一所学校学生的成绩记录。我必须写一个ruby程序来找到成绩在70分以上的学生。文件大小为1GbRuby提供了一个用于处理CSV文件的优秀库CSV,您猜是CSV文件。我将研究提供的foreach、filter和parse方法。您当前解析它的方式是什么,它的具体问题是什么?你如何衡量“最佳”呢?我试过更聪明的csv和Rcsv宝石。但这也需要很长时间。请给出一个例子来解释这个问题。例如:我有一个csv文件,其中包含一所学校学生的成绩记录。我必须写一个ruby程序来找到成绩在70分以上的学生。文件大小为1GbRuby提供了一个用于处理CSV文件的优秀库CSV,您猜是CSV文件。我将研究提供的foreach、filter和parse方法。