Programação Pig: Script Apache Pig com UDF no modo HDFS



Programação do Pig: Apache Pig Script com UDF no modo HDFS. Aqui está uma postagem de blog para executar o script do Apache Pig com UDF no modo HDFS ...

Nas postagens anteriores do blog, vimos como começar com Programação e scripts do Pig . Vimos as etapas para escrever um Pig Script no modo HDFS e sem UDF. Na terceira parte desta série, revisaremos as etapas para escrever um script Pig com UDF no modo HDFS .

Explicamos como implementar Pig UDF criando funções integradas para explicar a funcionalidade da função integrada Pig. Para uma melhor explicação, pegamos duas funções internas. Fizemos isso com a ajuda de um script de porco.





Aqui, pegamos um exemplo e usamos as UDF (funções definidas pelo usuário), ou seja, fazer uma string em maiúsculas e pegar um valor e aumentar sua potência.

O conjunto de dados é representado abaixo, o qual usaremos neste exemplo:



table

Nosso objetivo é fazer a 1ª coluna com a letra maiúscula e elevar a potência da 2ª coluna com o valor da 3ª coluna.

Vamos começar escrevendo o código java para cada UDF. Também temos que configurar 4 JARs em nosso projeto java para evitar erros de compilação.
Primeiro, criaremos programas java, ambos são fornecidos a seguir:



como definir o classpath java

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 ('deprecation') public class Upper estende EvalFunc {public String exec (Tuple input) lança 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 ('Exceção capturada processando linha 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 extends EvalFunc {public Long exec (Tuple input) throws IOException {try { int base = (Inteiro) input.get (0) int expoent = (Inteiro) input.get (1) long result = 1 / * Provavelmente não é o método mais eficiente ... * / for (int i = 0 i result) {// Nós transbordamos. Dê um aviso, mas não lance uma // exceção. warn ('Overflow!', PigWarning.TOO_LARGE_FOR_INT) // Retornar nulo indicará ao Pig que falhamos, mas // queremos continuar a execução. return null}} return result} catch (Exception e) {// Lançar uma exceção fará com que a tarefa falhe. lance new IOException ('Something bad aconteceu!', e)}}}

Para remover erros de compilação, temos que configurar 4 JARs em nosso projeto java.


Clique no botão Download para baixar os JARs

[buttonleads form_title = ”Código de download” redirect_url = https: //edureka.wistia.com/medias/wtboe1hmkr/download? media_file_id = 76900193 course_id = 166 button_text = ”Baixar JARs”]

Agora, exportamos arquivos JAR para ambos os códigos java. Verifique as etapas abaixo para a criação do JAR.

Aqui, mostramos para um programa, proceda da mesma forma no próximo programa também.

Depois de criar os JARs e os arquivos de texto, movemos todos os dados para o cluster HDFS, que é representado pelas seguintes imagens:

Em nosso conjunto de dados, os campos são separados por vírgulas (,).

Tutorial do mysql para iniciantes com exemplos

Depois de mover o arquivo, criamos um script com a extensão .pig e colocamos todos os comandos nesse arquivo de script.

Agora no terminal, digite PIG seguido do nome do arquivo de script que é mostrado na seguinte imagem:

Aqui, esta é a saída para executar o script pig.

Tem alguma questão para nós? Mencione-os na seção de comentários e entraremos em contato com você.

Postagens relacionadas:

Etapas para criar UDF no Apache Pig

Introdução ao Apache Hive

abstração em c ++