pig中的python udf错误

2ic8powd  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(270)

我试着在Pig的python-udf下面运行

@outputSchema("word:chararray")
def get(s):
    out = s.lower()
    return out;

我得到以下错误:

File "/home/test.py", line 3, in get
    out = s.lower()
AttributeError: 'NoneType' object has no attribute 'lower'
mhd8tkvw

mhd8tkvw1#

你应该在必要的时候处理这个案子 s 没有。在大多数示例中,例如:

from pig_util import outputSchema

@outputSchema('decade:chararray')
def decade(year):
    """
    Get the decade, given a year.

    e.g. for 1998 -> '1990s'
    """
    try:
        base_decade_year = int(year) - (int(year) % 10)
        decade_str = '%ss' % base_decade_year
        print 'input year: %s, decade: %s' % (year, decade_str)
        return decade_str
    except ValueError:
        return None

当值为 None . 因此,一个可能的解决办法是:

@outputSchema("word:chararray")
def get(s):
    if s is None:
        return None
    return str(s).lower()

相关问题