我通过cloudera使用hadoop。我需要找到最小值和键,跨越几个文本文件
文本文件(*.txt)的格式如下,其中包含键值对:
A 1
B 2
C 3
输出应为:
A 1
但我得到了:
A 1
B 2
C 3
因为代码分别基于键“a”、“b”和“c”给出最小值。有没有一种方法可以使用聚合包来获得输出,因为最小值是:
A 1
这是mapper.py。
import sys
def generateLongMinToken(word,value):
return "LongValueMin:" + word + "\t" + value
def main(argv):
line = sys.stdin.readline()
try:
while line:
word, value = line.rstrip().split() # remove leading and trailing whitespace # split the line into words
print generateLongMinToken(word,value)
line = sys.stdin.readline()
except "end of file":
return None
if __name__ == "__main__":
main(sys.argv)
这是hadoop命令:
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
-file mapper.py -mapper mapper.py \
-reducer aggregate \
-input /user/cloudera/gutenberg/min/* \
-output /user/cloudera/gutenberg/min_output
暂无答案!
目前还没有任何答案,快来回答吧!