ERROR 1066: невозможно открыть iterator для псевдонима в Pig, Generic solution

Очень распространенное сообщение об ошибке в Apache Pig:

ERROR 1066: невозможно открыть iterator для псевдонима

Есть несколько вопросов, где упоминается эта ошибка, но ни один из них не дает общий подход для решения этой проблемы. Отсюда этот вопрос:

Что делать, когда вы получаете ERROR 1066: невозможно открыть iterator для псевдонима?

Сообщение «ERROR 1066: Невозможно открыть iterator для псевдонима myAlias» предполагает, что в строке, где вы используете myAlias, что-то не так.

Однако обычно вы увидите эту ошибку, если что-то пошло не так, прежде чем вы пытаетесь использовать этот псевдоним. Итак, первое, что нужно сделать, – это найти дальше по сообщению об ошибке и посмотреть, действительно ли это первая ошибка, которая возникает.

Вот что я нашел эффективным способом справиться с этой ошибкой, когда мне не удалось обнаружить более раннюю ошибку:

  1. Запустите код до того, как вы сначала определите псевдоним.
  2. Посмотрите внимательно, видите ли вы какое-либо упоминание ERROR (часто оно находится в последних строках, но иногда это может произойти раньше)
  3. К тому времени у вас, вероятно, есть ошибка, если да: справитесь с ней и перейдите к 1.
  4. Возможно, у вас нет ошибки перед встречей с псевдонимом, в этом случае оцените линию, в которой происходит псевдоним.
  5. Если возникла ошибка: справитесь с ней и перейдите к 4; Если ошибка не возникает, запустите код до того, как вы снова используете псевдоним и перейдите к 3.

Заметки

  • Чтобы легко запустить PIG-код, выполните строчку: Откройте свиньи в командной строке (просто введите pig или pig -useHCatalog например)
  • Если вы запутались, убедитесь, что вы только определили псевдоним один раз. (Я считаю, что это хорошая практика в целом)

Однажды я получил эту ошибку при использовании функции SUM. Я суммировал ценности, которые имели нулевое значение среди них. После фильтрации нулевых значений в предыдущих строках он работал правильно.

  • Метеор: отладка на стороне сервера
  • Как я могу сделать что-то, что ловит все «необработанные» исключения в приложении WinForms?
  • Как отлаживать время ожидания ожидания ожидания ожидания на сервере MySQL?
  • Как добавить NSDebug.h и использовать NSZombie в iPhone SDK
  • Как добавить точку останова в objc_exception_throw?
  • Как программа C может выдать основной дамп без остановки?
  • В Visual Studio C ++, каковы представления распределения памяти?
  • «В настоящий момент точка останова не будет удалена. Исходный код отличается от исходного. «Что это значит?
  • Как работает отладчик?
  • Как отступить в отладчике Eclipse?
  • Ошибка Xcode 4 для обозначения журнала сбоев
  • Interesting Posts

    Экран мерцает на Windows 8.1 HP laptop

    Загрузка больших изображений с помощью Picasso и настраиваемого объекта Transform

    Каково максимальное количество бара, которое теоретически может решить 64-битная машина?

    Использование JAXB для отмены / маршалирования списка

    Исправлено столбец IOException, записывающий сериализуемый объект getactivity ()

    Вычислить значение n выбрать k

    Использование компьютера Windows в качестве устройства ввода Bluetooth для другого компьютера / устройства

    Создайте функцию Oracle, которая возвращает таблицу

    Android Studio – невозможно разрешить символ «firebase»

    Для чего используются указатели на функции и как их использовать?

    Как отображать косвенные данные в Jqgrid

    Поворот строк в столбцы без агрегата

    Возвращать временные frameworks подмножества данных в другие временные frameworks?

    Как читать данные из zip-файла без необходимости разархивировать весь файл

    Получение объекта «DatabaseOperations» не имеет атрибута «geo_db_type» при выполнении syncdb

    Давайте будем гением компьютера.