Komunikat "ERROR 1066: Nie można otworzyć iteratora dla aliasu myAlias" sugeruje, że coś jest nie tak w linii, w której korzystasz z myAlias.
Jednak zazwyczaj zobaczysz ten błąd, jeśli coś poszło nie tak ZANIM próbujesz użyć tego aliasu. Pierwszą rzeczą, którą należy zrobić, jest sprawdzenie komunikatu o błędzie i sprawdzenie, czy to naprawdę pierwszy błąd, który został zgłoszony.
Oto co znalazłem się skutecznym sposobem radzenia sobie z tym błędem, kiedy nie łatwo dostrzec wcześniejszy błąd:
- uruchomić kod transferowy tuż przed pierwszym zdefiniowania aliasu.
- Sprawdź uważnie, czy widzisz jakąkolwiek wzmiankę o ERROR (często jest w ostatnich linijkach, ale czasami może się to zdarzyć wcześniej)
- Do tej pory prawdopodobnie masz błąd, jeśli tak jest: zajmij się nim i przejdź do 1
- Możliwe jest, że nie masz błędu, zanim natkniesz się na alias, w tym przypadku oceń wiersz, w którym występuje alias.
- Jeśli wystąpi błąd: zrób to i przejdź do 4; Jeśli nie wystąpi błąd uruchomić kod transferowy tuż przed użyć aliasu po raz drugi, a następnie przejdź do 3.
Uwagi
- Aby łatwo uruchomić linię kodu PIG przez linię: Otwórz na świnię z linii poleceń (po prostu wpisz
pig
lub pig -useHCatalog
na przykład)
- Jeśli się pomylisz, upewnij się, że raz zdefiniujesz alias. (Uważam, że jest to ogólnie dobra praktyka).
To ma być ogólne podejście do komunikatu o błędzie, ponieważ takie komentarze/poprawki są bardzo mile widziane! –