hadoopMap减少删除小于或大于mapper中的值

7eumitmz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(360)

# !/usr/bin/env python

import sys

# input comes from STDIN (standard input)

for line in sys.stdin:
    line = line.strip()
    words = line.split()
    fulldate = words[1]
    year = fulldate[0:4]
    print '%s\t%s' % (year, words[15])

在字[15]中Map的值是来自txt文件的温度值,该文件来自第16列(或用于计算机计数的15列)。0-15). ftp://ftp.ncdc.noaa.gov/pub/data/uscrn/products/daily01/2010/crnd0103-2010-ak_st._paul_4_ne.txt
如你所见,前10-20个结果显示-9999。其余的是0到100之间的数字。
我想在发送到减速机之前过滤掉这些-9999值。我该怎么做?

5uzkadbs

5uzkadbs1#

跳过那些你不想要的应该很简单。如果值不在您想要的范围内,请不要打印它,例如:


# !/usr/bin/env python

import sys

# input comes from STDIN (standard input)

for line in sys.stdin:
    line = line.strip()
    words = line.split()
    fulldate = words[1]
    year = fulldate[0:4]
    if words[15] >= 0 && words[15] <= 100
        print '%s\t%s' % (year, words[15])

如果应用程序需要,可以不为每个输入记录生成输出,甚至为每个输入生成多个输出记录(通过多次打印)。

相关问题