0

userID、wordID、ctの3種類の情報を含むCSVがあります

(基本的に、14kの異なるツイープ、使用する単語ごとに異なる行、その単語のカウントを含む)

少なくとも2000の異なるwordIDを持つuserIDに対してのみ、このファイルをフィルタリングできるようにしたいと思います。

ファイルを調べてuserIDごとにwordIDをカウントする方法は理解していますが、これを「実際に頻繁に使用されるuserIDに対してのみ'userID、wordID、ct'を配置する」と組み合わせる方法がわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これが現在ファイルを処理している方法です。ファイル自体は 19m 行なので、これを行うにはもっと効率的な方法があるのではないかと思います。

filename = ARGV[0]

file = File.new(filename, "r")

entry = {}

file.each do |line|
        user, word, ct = line.chomp.split(",")
        entry[user] = entry[user].to_i + 1
end

file = File.new(filename, "r")

file.each do |line| 
line.strip!
        user, word, ct = line.chomp.split(",")
        if entry[user] >= 2000
                puts line   
        end
end
于 2013-03-03T21:37:02.683 に答える