【问题标题】:ERROR 1066: Unable to open iterator for alias in Pig, Generic solution错误 1066:无法在 Pig 中打开别名的迭代器,通用解决方案
【发布时间】:2016-04-02 09:29:01
【问题描述】:

Apache Pig 中一个非常常见的错误消息是:

错误 1066:无法打开别名的迭代器

有几个问题提到了这个错误,但没有一个给出处理它的通用方法。因此这个问题:

收到 ERROR 1066: Unable to open iterator for alias 怎么办?

【问题讨论】:

    标签: debugging apache-pig hortonworks-data-platform hdp


    【解决方案1】:

    只需在另一个命令窗口中尝试就不会出错

    【讨论】:

    • 请在回答或给出解决方案时详细说明。如果您测试过任何代码行,也请分享一些示例。
    • 除非你做了一些非常奇怪的事情,否则这不应该解决问题,因为它是一个结构性问题。
    【解决方案2】:

    消息“ERROR 1066: Unable to open iterator for alias myAlias”表明您使用 myAlias 的行有问题。

    但是,如果在您尝试使用此别名之前出现问题,通常您会看到此错误。因此,首先要做的是进一步查找错误消息,看看这是否真的是引发的第一个错误。

    当我没有轻易发现较早的错误时,我发现这是一种处理此错误的有效方法:

    1. 在您首次定义别名之前运行代码。
    2. 仔细查看,您是否看到任何提及 ERROR(通常在最后几行,但有时可能更早发生)
    3. 现在你可能有一个错误,如果是这样:处理它并转到 1。
    4. 在遇到别名之前可能没有错误,在这种情况下,请评估出现别名的行。
    5. 如果出现错误:处理,转4;如果没有出现错误,则运行代码,直到您第二次使用别名之前,然后转到 3。

    注意事项:

    • 轻松逐行运行 PIG 代码:在命令行中打开 pig(例如,只需键入pigpig -useHCatalog
    • 如果您感到困惑,请确保您只定义了一次别名。 (我认为这通常是一种很好的做法)

    【讨论】:

    • 这打算成为错误消息的通用方法,因此非常欢迎 cmets/改进!
    【解决方案3】:

    我曾经在使用 SUM 函数时收到此错误。我正在对其中包含空值的值求和。过滤掉前面几行中的空值后,它就可以正常工作了。

    【讨论】:

    • 这将在一般方法的第 4 步中被捕获,但对于这个有用的特定情况确实 +1!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 2015-10-25
    • 1970-01-01
    相关资源
    最近更新 更多