如何使用聚合hadoop包来查找所有键的最小值?

rbpvctlc  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(158)

我通过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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题