现在我想在不使用任何排序命令参数的情况下进行降序排序。所以我想出了一种方法,让每个值倍数 -1,最大值为最小值,最小值为最大值。然后因为排序命令是由第一个值,如果没有添加任何命令参数。所以我打印格式值,让每个值都有相同的位。这种方式将用于 map-reduce。映射器代码:
import sys
import re
for line in sys.stdin:
adver_num=0
line=line.strip()
words=line.split('\t')
adver_num= (-1)*(int(words[0]))
print"%09.0f\t%s\t%s"%(adver_num,words[1],words[2])
然后 cat a.log|python mapper.py|sort > b.log。而b.log,似乎负数仍然不起作用。
b.log 中的最后一行如下所示。排序命令似乎没有考虑缺点。我该如何解决?
-00026844
-00027621
-00029789
-00029848
-00030789
-00032120
-00034452
-00034458
-00037064
-00038644