Доброго времени суток.
Как лучше всего подойти к задаче парсинга большого объема csv логов звонков (~ 12-15 ГБ), что бы получить максимальную скорость обработки данных?
Логи представляют из себя набор данных - "время, имя, длительность".
По итогу надо для каждого уникального имени получить суммарную длительность.
Таким скриптом на pyhton считалось > 2 часов, хотелось бы побыстрее:
import sys
import re
d = {}
for line in sys.stdin:
NameRE = re.compile("NAME=(\w+)")
TimeRE = re.compile("TIME=(\d+)")
if NameRE.search(line):
Name = str(NameRE.search(line).group(1))
Time = int(TimeRE.search(line).group(1))
if Name in d:
Time += d[Name]
d[Name] = Time
else:
d[Name] = Time
for k in d:
print '%s %s' % (k, d[k])