Мой CSV-файл импортирован как таковой:
records = FasterCSV.read(path, :headers => true, :header_converters => :symbol)
Как я могу получить уникальные случаи моих данных? Например, вот несколько примеров данных:
ID,Timestamp
test,2008.12.03.20.26.32
test,2008.12.03.20.26.38
test,2008.12.03.20.26.41
test,2008.12.03.20.26.42
test,2008.12.03.20.26.43
test,2008.12.03.20.26.44
cnn,2008.12.03.20.30.37
cnn,2008.12.03.20.30.49
Если я просто позвоню records[:id], я просто получу:
testtesttesttesttesttestcnncnn
Я бы хотел получить вот это:
testcnn
Как я могу это сделать?





Если ваши данные не масивный, вы можете использовать класс Набор.
Вот пример:
p ['cnn','test','test','test','test','cnn','cnn'].to_set.to_a
=> ["cnn", "test"]
Вот простой тест:
require 'set'
require 'benchmark'
Benchmark.bm(5) do |x|
x.report("Set") do
a = []
20_000.times do |i|
a << 'cnn'<< 'test'
end
a.to_set.to_a
end
end
=>
user system total real
Set 0.110000 0.000000 0.110000 ( 0.109000)
Насколько масштабно мы говорим? В моем CSV-файле будет в среднем 2000 записей; это слишком велико?