此问题之前由user907629提出,Maria Zverina回答了问题,但她没有从外部csv文件导入数据。
我的文件包含超过800000条记录,我想导入外部csv文件。应该在此frequency count代码中进行哪些更改?
答案 0 :(得分:3)
您可以在不存储任何中间列表的情况下执行此操作:
itemgetter
除非您打算使用列表,否则没有理由将数据存储在列表中,python setup.py install
将仅从每行中提取第三列值。您需要传递您想要计算的任何列,并将分隔符设置为分隔数据的任何内容。
答案 1 :(得分:1)
open
从外部读取文件而不是StringIO 检查新代码:
import csv
from collections import Counter
input_stream = open('external.csv')
reader = csv.reader(input_stream, delimiter='\t')
reader.next() #skip header
cities = [row[2] for row in reader]
for (k,v) in Counter(cities).iteritems():
print "%s appears %d times" % (k, v)
答案 2 :(得分:-1)
如果您只需要执行一次,如果您使用的是UNIX计算机,则可以使用优秀的命令行工具。计算单词就像
一样简单cat "inputfile.txt" | sort | uniq -c > outputfile.txt
要将这些值存储在输出文件中,请使用
{{1}}
有关命令行何时(最多235x)比hadoop群集更快更容易的讨论,请参阅http://aadrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html。