PIG Latin | Como escrever código em PIG Latin

Conteúdo

No artigo anterior, discutimos o ecossistema Hadoop (ligação). Também falamos sobre as duas ferramentas Hadoop mais usadas, quer dizer, PORCO e COLMEIA. Ambas as línguas têm seus seguidores e não há preferência específica entre as duas, em geral. Porém, nos casos em que a equipe que usa essas ferramentas é mais orientada para a programação, às vezes PIG é escolhido ao invés de HIVE, pois dá a eles mais liberdade durante a codificação. Nos casos em que a equipe não é muito especialista em programação, HIVE é provavelmente a melhor opção, dada sua semelhança com consultas SQL. As consultas sobre PIG são escritas em latim PIG. Neste artigo, iremos apresentá-lo ao PIG Latin usando um exemplo prático simples.

Instalação PIG

O motor PIG é executado no servidor do cliente. É simplesmente um interpretador que transforma seu código simples em operações complexas de redução de mapa. Isto é mapreduzir ahora se maneja en la red distribuida de Hadoop. Observe que toda a rede nem saberá que a consulta foi executada a partir de um mecanismo PIG. O PIG permanece apenas na IU e tem como objetivo tornar a codificação mais fácil para o usuário.

pig-8548302

Siga os passos abaixo em seu shell para instalar o PIG:

Para instalar sistemas compatíveis com Pig On Red Hat:

$ sudo yum install pig

Para instalar o Pig em sistemas SLES:

$ sudo zypper install pig

Para instalar o Pig no Ubuntu e outros sistemas Debian:

$ sudo apt-get install pig

Se você está pensando em executar o Pig no Windows, você deve apenas fazer uma máquina virtual rodar no Linux e então trabalhar nela. Você pode usar VMWare Player ou Oracle VirtualBox para iniciar um.

Depois de instalar o pacote PIG, você pode começar com o shell grunhido.

Para iniciar o Grunt Shell (MRv1):
$ exportar PIG_CONF_DIR = / usr / lib / pig / conf
$ export PIG_CLASSPATH = / usr / lib / hbase / hbase-0.94.2-cdh4.2.1-security.jar:/usr/lib/
zookeeper/zookeeper-3.4.5-cdh4.2.1.jar
$ porco 
2012-02-08 23:39:41,819 [a Principal] INFO org.apache.pig.Main - 
Registrando mensagens de erro para: /home / arvind / pig-0.9.2-cdh4b1 / bin / pig_1328773181817.log
2012-02-08 23:39:41,994 [a Principal] INFO
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - 
Conectando-se ao sistema de arquivos hadoop em: hdfs://localhost /
...
grunhido> 

Para iniciar o Grunt Shell (FIO):
$ exportar PIG_CONF_DIR = / usr / lib / pig / conf
$ export PIG_CLASSPATH = / usr / lib / hbase / hbase-0.94.2-cdh4.2.1
-security.jar:/usr / lib / zookeeper / zookeeper-3.4.5-cdh4.2.1.jar
$ porco 
...
grunhido>

Uma vez que eu vejo “rosnar>”, você pode começar a codificar em PIG.

Fundo da caixa

Você é o líder de análise em uma loja de varejo chamada XYZ. XYZ mantém um registro de todos os clientes que compram nesta loja. Sua tarefa neste exercício é criar uma nova coluna chamada imposto sobre vendas., que é o 5% da venda. Mais tarde, filtrar as pessoas para as quais o valor do imposto é menor que $ 35. Assim que este subconjunto estiver pronto, escolha o 2 principais clientes com o menor número de clientes. Abaixo está uma tabela de amostra para a loja de varejo, que é salva como um .csv.

tabela1-7729424

Escreva uma consulta em PIG Latin

Vamos construir esta consulta passo a passo. A seguir estão as etapas que você precisa seguir:

Paso 1 : Carregue o conjunto de dados no formato compreensível de PIG e armazenamento temporário de onde a consulta PIG pode referenciar a tabela diretamente

Sales = LOAD 'dataset.csv' USING PigStorage (',') COMO (Cliente,Vendas);

Tenga en cuenta que el comando anterior no carga la variável era. Ao trabalhar com Big Data, você precisa ser muito específico sobre as variáveis ​​que você precisa usar e, portanto, certifique-se de escolher apenas as variáveis ​​que são importantes para você em seu código.

Paso 2: criar uma nova tabela com valores de impostos.

Imposto = FOREACH Vendas GERAR Cliente,Vendas,Vendas * 0,05 como imposto : flutuador;

O comando acima gera uma nova tabela chamada impostos que possui as três colunas. A tabela agora será semelhante à seguinte:

table2-9758302Paso 3: Subconjunto de toda a tabela no cliente com um valor de imposto abaixo $ 35.

Imposto baixo = FILTRO Imposto POR Imposto < $35;

O resultado deste comando será visto escolha as células amarelas na seguinte tabela:

table3-5559758Paso 4: Agora precisamos classificar a tabela de subconjuntos por Cliente (EU IRIA) e escolha os dois principais clientes.

Sortcust = ORDER Lowtax BY Customer;
top_two = LIMIT Sortedcust 2;

Paso 5: armazenar arquivo temporário em arquivo csv permanente

STORE sortedcust INTO 'salesreport' USING PIGSTORAGE (',');

Nesta etapa, nossa tarefa está concluída e você obterá os números de cliente necessários com todos os detalhes. A seguir, o código completo que pode ser executado de uma vez é mostrado:

Sales = LOAD 'dataset.csv' USING PigStorage (',') COMO (Cliente,Vendas);
Imposto = FOREACH Vendas GERAR Cliente,Vendas,Vendas * 0,05 como imposto : flutuador;
Imposto baixo = FILTRO Imposto POR Imposto < $35;
Sortcust = ORDER Lowtax BY Customer;
top_two = LIMIT Sortedcust 2;
STORE sortedcust INTO 'salesreport' USING PIGSTORAGE (',');

Notas finais

Neste artigo, aprendemos como escrever código básico em PIG Latin. Porém, restringimos este artigo a declarações simples de filtragem e classificação, também falaremos sobre fusões mais complexas e outras declarações em alguns dos próximos artigos.

O artigo foi útil para você? Compartilhe conosco todas as aplicações práticas de PIG que você encontrou em seu trabalho. Deixe-nos saber sua opinião sobre este item na caixa abaixo..

Se você gostou do que acabou de ler e deseja continuar seu aprendizado sobre análise, inscreva-se em nossos e-mails, Siga-nos no Twitter ou como o nosso página do Facebook.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker