10

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

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

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

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

4

3 回答 3

6

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

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

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

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

笔记:

  • 轻松逐行运行 PIG 代码:在命令行中打开 pig(只需键入pigpig -useHCatalog例如)
  • 如果您感到困惑,请确保您只定义了一次别名。(我相信这是一般的好习惯)
于 2015-12-28T14:09:25.870 回答
3

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

于 2018-03-11T19:20:14.523 回答
-3

只需在另一个命令窗口中尝试,您将不会收到错误

于 2021-08-16T05:22:49.530 回答