ERROR 1066: No se puede abrir el iterador para el alias en Pig, solución genérica

Resuelto Dennis Jaheruddin asked hace 8 años • 0 respuestas

Un mensaje de error muy común en Apache Pig es:

ERROR 1066: No se puede abrir el iterador para el alias

Hay varias preguntas en las que se menciona este error, pero ninguna ofrece un enfoque genérico para solucionarlo. De ahí esta pregunta:

¿Qué hacer cuando recibe un ERROR 1066: No se puede abrir el iterador para el alias?

Dennis Jaheruddin avatar Dec 28 '15 21:12 Dennis Jaheruddin
Aceptado

El mensaje "ERROR 1066: No se puede abrir el iterador para el alias myAlias" sugiere que algo va mal en la línea donde usa myAlias.

Sin embargo, normalmente verá este error si algo salió mal ANTES de intentar utilizar este alias. Entonces, lo primero que debe hacer es buscar más adelante en el mensaje de error y ver si este es realmente el primer error que se genera.

Esto es lo que encontré como una manera eficiente de lidiar con este error cuando no detecté fácilmente un error anterior:

  1. Ejecute el código hasta justo antes de definir el alias por primera vez.
  2. Mire con atención si ve alguna mención de ERROR (a menudo está en las últimas líneas, pero a veces esto puede suceder antes)
  3. Probablemente ya tengas un error, si es así: solucionalo y ve al 1.
  4. Es posible que no tengas un error antes de encontrar el alias, en este caso evalúa la línea donde ocurre el alias.
  5. Si se produce el error: solucionelo y vaya a 4; Si no ocurre ningún error, ejecute el código hasta justo antes de usar el alias por segunda vez y vaya a 3.

Notas:

  • Para ejecutar fácilmente el código PIG línea por línea: abra pig en la línea de comando (simplemente escriba pigo, pig -useHCatalogpor ejemplo)
  • Si se confunde, asegúrese de definir el alias solo una vez. (Creo que esta es una buena práctica en general)
Dennis Jaheruddin avatar Dec 28 '2015 14:12 Dennis Jaheruddin

Una vez recibí este error al usar la función SUMA. Estaba sumando valores que tenían nulos entre ellos. Después de filtrar los valores nulos en las líneas anteriores, funcionó correctamente.

zach avatar Mar 11 '2018 19:03 zach