2015-12-28 24 views

Odpowiedz

6

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:

  1. uruchomić kod transferowy tuż przed pierwszym zdefiniowania aliasu.
  2. 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)
  3. Do tej pory prawdopodobnie masz błąd, jeśli tak jest: zajmij się nim i przejdź do 1
  4. Możliwe jest, że nie masz błędu, zanim natkniesz się na alias, w tym przypadku oceń wiersz, w którym występuje alias.
  5. 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).
+0

To ma być ogólne podejście do komunikatu o błędzie, ponieważ takie komentarze/poprawki są bardzo mile widziane! –