错误1066:无法在Pig,Generic解决方案中打开别名的迭代器

问题描述 投票:8回答:2

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

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

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

当你收到错误1066时该怎么办:无法打开别名的迭代器?

debugging apache-pig hortonworks-data-platform hdp
2个回答
6
投票

消息“ERROR 1066:无法为别名myAlias打开迭代器”表示在使用myAlias的行中出现了问题。

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

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

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

笔记:

  • 要逐行轻松运行PIG代码:在命令行上打开pig(例如,输入pigor pig -useHCatalog
  • 如果您感到困惑,请确保只定义一次别名。 (我相信这是一般的好习惯)

2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.