O porco fluxo da aplicação latina em hadoop
Na sua essência, Pig Latin é um fluxo de dados linguagem, onde você define um fluxo de dados e uma série de transformações que são aplicadas aos dados que flui através de sua aplicação. Isto está em contraste com um controle de fluxo linguagem (como C ou Java), onde você escreve uma série de instruções.
Em linguagens de controle de fluxo, você usa construções como loops e lógica condicional (como uma instrução if). Você não vai encontrar laços e se declarações em Pig Latin.
Se você precisar de algum convincente de que trabalhar com porco é uma linha muito mais fácil de roer do que ter que escrever Map e Reduce programas, começar por dar uma olhada em alguns sintaxe Pig real:
A = CARGA `data_file.txt` -.. B = GRUPO ... -... C = FILTER ...- DESCARREGAR B-.STORE C INTO `Results`-
Alguns dos textos neste exemplo realmente parece Inglês, certo? Não demasiado assustador, pelo menos neste momento. Olhando para cada linha, por sua vez, você pode ver o fluxo básico de um programa Pig. (Note que este código pode ser parte de um script ou emitido no shell interativo chamado Grunt.)
Carga: Você primeira carga (LOAD) os dados que você deseja manipular.
Como em um trabalho MapReduce típico, que os dados são armazenados no HDFS. Para um programa Pig para acessar os dados, primeiro você dizer Pig o arquivo ou arquivos de usar. Para essa tarefa, você usa o CARGA ‘Data_file’ comando.
Aqui, ‘Data_file’ pode especificar um arquivo HDFS ou um diretório. Se um diretório for especificado, todos os arquivos no diretório são carregados no programa.
Se os dados são armazenados em um formato de arquivo que não é nativamente acessíveis a Pig, você pode, opcionalmente, adicionar a função usando a declaração LOAD para especificar uma função definida pelo usuário que pode ler em (e interpretar) os dados.
Transform: Você executar os dados através de um conjunto de transformações que, maneira sob o capô e longe de qualquer coisa que você tem que preocupar-se com, são traduzidos em um conjunto de Map e Reduce tarefas.
A lógica de transformação é onde toda a manipulação de dados acontece. Aqui, você pode filtrar as linhas que não são de interesse, Cadastre-se dois conjuntos de arquivos de dados, dados de grupo para construir agregações, resultados ordem, e fazer muito, muito mais.
Dump: Finalmente, você despejo (dump) os resultados para o ecrã
ou
Loja (STORE) os resultados em um arquivo em algum lugar.
Você normalmente usaria o comando DUMP para enviar a saída para a tela quando você depurar seus programas. Quando o programa entra em produção, você simplesmente alterar a chamada de despejo para uma chamada de loja para que qualquer resultado de executar seus programas são armazenados em um arquivo para posterior processamento ou análise.