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:
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
abstração em c ++