Programación Pig: Script Apache Pig con UDF en modo HDFS



Programación Pig: Script Apache Pig con UDF en modo HDFS. Aquí hay una publicación de blog para ejecutar el script Apache Pig con UDF en modo HDFS ...

En las publicaciones anteriores del blog vimos cómo empezar Programación y secuencias de comandos de Pig . Hemos visto los pasos para escribir un Pig Script en modo HDFS y sin UDF. En la tercera parte de esta serie repasaremos los pasos para escribir un script de Pig con UDF en modo HDFS .

Hemos explicado cómo implementar Pig UDF mediante la creación de funciones integradas para explicar la funcionalidad de la función integrada de Pig. Para una mejor explicación, hemos tomado dos funciones integradas. Lo hemos hecho con la ayuda de un guión de cerdo.





Aquí, hemos tomado un ejemplo y hemos utilizado tanto las UDF (funciones definidas por el usuario), es decir, hacer una cadena en mayúsculas y tomar un valor y aumentar su potencia.

A continuación, se muestra el conjunto de datos que vamos a utilizar en este ejemplo:



table

Nuestro objetivo es hacer la letra de la 1ª columna en mayúsculas y elevar la potencia de la 2ª columna con el valor de la 3ª columna.

Comencemos escribiendo el código java para cada UDF. También tenemos que configurar 4 JARs en nuestro proyecto java para evitar los errores de compilación.
Primero, crearemos programas java, ambos se dan a continuación:



Upper.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.data.Tuple import org.apache.pig.impl.util.WrappedIOException @SuppressWarnings ('desaprobación') public class Upper extiende EvalFunc {public String exec (entrada de tupla) lanza IOException {if (input == null || input.size () == 0) return null try {String str = (String) input.get (0) str = str.toUpperCase () return str} catch (Exception e) {throw WrappedIOException.wrap ('Excepción capturada procesando fila de entrada', e)}}}

Power.java

import java.io.IOException import org.apache.pig.EvalFunc import org.apache.pig.PigWarning import org.apache.pig.data.Tuple public class Pow extiende EvalFunc {public Long exec (entrada de Tupla) lanza IOException {try { int base = (Integer) input.get (0) int exponent = (Integer) input.get (1) long result = 1 / * Probablemente no sea el método más eficiente ... * / for (int i = 0 i result) {// Nos desbordamos. Dar una advertencia, pero no lanzar una // excepción. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Devolver null le indicará a Pig que fallamos pero // queremos continuar con la ejecución. return null}} return result} catch (Exception e) {// Lanzar una excepción hará que la tarea falle. lanzar una nueva IOException ('¡Ha ocurrido algo malo!', e)}}}

Para eliminar errores de compilación, tenemos que configurar 4 tarros en nuestro proyecto java.

java al poder de


Haga clic en el botón Descargar para descargar los archivos JAR

[buttonleads form_title = 'Código de descarga' redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = 'Descargar archivos JAR']

Ahora, exportamos archivos JAR para ambos códigos java. Consulte los pasos siguientes para la creación de JAR.

Aquí, hemos mostrado para un programa, proceda de la misma manera también en el siguiente programa.

Después de crear los archivos JAR y de texto, hemos movido todos los datos al clúster HDFS, que se muestra en las siguientes imágenes:

En nuestro conjunto de datos, los campos están separados por comas (,).

ordenar lista c ++

Después de mover el archivo, hemos creado un script con la extensión .pig y hemos puesto todos los comandos en ese archivo de script.

Ahora en la terminal, escriba PIG seguido del nombre del archivo de script que se muestra en la siguiente imagen:

diferencia entre lanzamientos y lanzamientos

Aquí, esta es la salida para ejecutar el script pig.

Tienes una pregunta para nosotros? Por favor, menciónelos en la sección de comentarios y nos comunicaremos con usted.

Artículos Relacionados:

Pasos para crear UDF en Apache Pig

Introducción a Apache Hive