所以我写了一个Python程序来处理一些小数据处理任务.
这是我想要的计算的简化语言中的一个非常简短的规范:
parse "%s %lf %s" aa bb cc | group_by aa | quickselect --key=bb 0:5 | \
flatten | format "%s %lf %s" aa bb cc
Run Code Online (Sandbox Code Playgroud)
也就是说,对于每一行,解析出一个单词,一个浮点数和另一个单词.将它们视为玩家ID,分数和日期.我想要每个球员的前五个得分和日期.数据大小并非微不足道,但并不大; 大约630兆字节.
我想知道我应该编写什么真正的可执行语言,以使它同样简短(如下面的Python),但速度要快得多.
#!/usr/bin/python
# -*- coding: utf-8; -*-
import sys
top_5 = {}
for line in sys.stdin:
aa, bb, cc = line.split()
# We want the top 5 for each distinct value of aa. There are
# hundreds of thousands of values of aa.
bb = float(bb)
if aa not in top_5: …
Run Code Online (Sandbox Code Playgroud)