【问题标题】:Viewing the error message in a Python UDF在 Python UDF 中查看错误消息
【发布时间】:2013-12-17 21:35:45
【问题描述】:

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

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

此函数将“DD-MON-YY”格式的日期作为输入(例如,“01-JAN-2013”​​)并返回当天发生的那一周作为输出(对于“01-JAN -2013',这将是一年中的第零周,因此返回值为 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 的最佳实践是什么?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 知道在本地模式下运行 pig 时会出现在哪里吗? Pig 日志只包含一条通用错误消息,就像我在上面的帖子中看到的那样。
    • 日志文件应该被转储到你的 cwd 中,例如您启动 grunt 的位置。您可以使用您的 jobtracker ip 和端口访问您的 jobtracker 管理平台。如果在本地,并且使用默认端口,则应该是:127.0.0.1:50030/jobtracker.jsp
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多