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

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 donde se menciona este error, pero ninguna de ellas ofrece un enfoque genérico para manejarlo. De ahí esta pregunta:

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

El mensaje “ERROR 1066: no se puede abrir el iterador para alias myAlias” sugiere que algo va mal en la línea donde usas myAlias.

Sin embargo, generalmente verá este error si algo salió mal ANTES de que intente usar este alias. Entonces, lo primero que hay que hacer es buscar más a lo largo del mensaje de error y ver si este es realmente el primer error que se lanza.

Esto es lo que considero que es una forma 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.
  2. Mire con cuidado, si ve alguna mención de ERROR (a menudo está en las últimas líneas, pero a veces esto puede suceder antes)
  3. Por ahora, es probable que tenga un error, de ser así, trate con eso y vaya a 1.
  4. Es posible que no tenga un error antes de encontrar el alias, en este caso evalúe la línea donde aparece el alias.
  5. Si se produce el error: solucione el problema y vaya a 4; Si no se produce un 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 el cerdo en la línea de comando (Simplemente escriba pig o pig -useHCatalog por ejemplo)
  • Si se confunde, asegúrese de definir el alias solo una vez. (Creo que esta es una buena práctica en general)

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