在Python UDF中查看错误消息

时间:2013-12-17 21:35:46

标签: python regex user-defined-functions apache-pig

我正在寻找调试Python UDF的最佳实践。

我无法运行此UDF,并且无法在日志中显示有价值的错误消息。

此函数将格式为'DD-MON-YY'的日期作为输入(例如'01 -JAN-2013')并返回当天作为输出发生的那一周的星期(For'01 -JAN -2013',这将是一年中的第0周,因此返回值将为0)。

@outputSchema("week_number:int")
def week_from_date(input_date):
    date_to_match = re.match('(\d{2}).?([A-Za-z]{3}).?(\d{4})', input_date)
    if date_to_match:
        day, month, year = date_to_match.group(1), date_to_match.group(2), date_to_match.group(3)        
        import time
        from time import gmtime, strftime
        d = time.strptime("%s %s %s" % (day, month, year), "%d %b %Y")
       return int(strftime("%U", d))
    else:
            return -1

我收到此错误:Backend error : Error executing function

无论如何都要获得更具描述性的错误消息?调试Python UDF的最佳实践是什么?

1 个答案:

答案 0 :(得分:0)

查看您的代码,我发现缩进错误可能是问题的根源(尽管它可能与您的帖子有关,而不是原始代码)。

但是,您可以从两个来源看到更详细的错误堆栈: - 猪日志,通常在文本文件中(例如:pig_1388770791476.log); - Hadoop作业跟踪器:通过单击相关作业然后单击已终止任务,可以看到错误和相应的堆栈。