Secuencias de comandos con el cerdo latino en hadoop
Hadoop es un ecosistema rico y evolucionando rápidamente con un conjunto cada vez mayor de nuevas aplicaciones. En lugar de tratar de mantenerse al día con todos los requisitos para nuevas capacidades, cerdo está diseñado para ser extensible a través de funciones definidas por el usuario, también conocido como UDF.
UDF pueden ser escritos en varios lenguajes de programación, incluyendo Java, Python y javascript. Los desarrolladores también están publicando y compartiendo una creciente colección de UDF en línea. (Busque Piggy Bank y DataFu, por citar sólo dos ejemplos de este tipo de colecciones en línea.) Algunas de las UDF de cerdo que son parte de estos repositorios son funciones Load / Store (XML, por ejemplo), las funciones de fecha y hora, texto, matemáticas, y estadísticas funciones.
Pig también puede ser embebido en los lenguajes principales tales como Java, Python y javascript, lo que le permite integrar Cerdo con las aplicaciones existentes. También ayuda a superar las limitaciones en el idioma Pig. Una de las limitaciones que se hace referencia más comúnmente es que Pig no admite los estados de flujo de control: if / else, while loop, bucle, y de condición.
Cerdo soporta nativamente flujo de datos, pero necesita ser incrustado dentro de otro idioma para proporcionar un flujo de control. Hay ventajas y desventajas, sin embargo, de la incorporación de cerdo en un lenguaje de control de flujo. Por ejemplo, si una declaración de cerdo está incrustado en un bucle, cada vez que se repite el bucle y se ejecuta la declaración de cerdo, esto provoca un trabajo MapReduce independiente para ejecutar.