Esta postagem é sobre os operadores do Apache Pig.Apache Pig também permite que você escreva transformações de dados complexas sem o conhecimento de Java, tornando-o muito importante para o .Vamos dar uma olhada rápida no que é Pig e Pig Latin e os diferentes modos em que eles podem ser operados, antes de ir para Operadores.
O que é Apache Pig?
Apache Pig é uma linguagem procedural de alto nível para consultar grandes conjuntos de dados usando Hadoop e a Plataforma Map Reduce. É um pacote Java, onde os scripts podem ser executados a partir de qualquer implementação de linguagem em execução na JVM. Isso é muito usado em processos iterativos.
O Apache Pig simplifica o uso do Hadoop, permitindo consultas semelhantes a SQL para um conjunto de dados distribuído e torna possível criar tarefas complexas para processar grandes volumes de dados de forma rápida e eficaz. A melhor característica do Pig é que ele suporta muitos recursos relacionais como Join, Group e Aggregate.
Eu sei que o Pig soa muito mais como uma ferramenta ETL e tem muitos recursos comuns às ferramentas ETL. Mas a vantagem do Pig em relação às ferramentas ETL é que ele pode ser executado em vários servidores simultaneamente.
O que é Apache Pig Latin?
O Apache Pig cria uma abstração de linguagem procedural mais simples sobre Map Reduce para expor uma interface mais parecida com a Structured Query Language (SQL) para aplicativos Hadoop chamados Apache Pig Latin. Portanto, em vez de escrever um aplicativo Map Reduce separado, você pode escrever um único script no Apache Pig Latin que é paralelizado automaticamente e distribuído em um cluster. Em palavras simples, Pig Latin, é uma sequência de declarações simples pegando uma entrada e produzindo uma saída. Os dados de entrada e saída são compostos por bolsas, mapas, tuplas e escalares.
Modos de execução do Apache Pig:
O Apache Pig tem dois modos de execução:
Modo local
No ‘Modo Local’, os dados de origem seriam selecionados do diretório local em seu sistema de computador. O modo MapReduce pode ser especificado usando o comando ‘pig –x local’.
Modo MapReduce:
Para executar o Pig no modo MapReduce, você precisa de acesso ao cluster Hadoop e à instalação do HDFS. O modo MapReduce pode ser especificado usando o comando ‘pig’.
Operadores Apache Pig:
O Apache Pig Operators é uma linguagem procedural de alto nível para consultar grandes conjuntos de dados usando Hadoop e a Plataforma Map Reduce. Uma instrução Pig Latin é um operador que toma uma relação como entrada e produz outra relação como saída. Esses operadores são as principais ferramentas que o Pig Latin oferece para operar nos dados. Eles permitem que você o transforme classificando, agrupando, unindo, projetando e filtrando.
Vamos criar dois arquivos para executar os comandos:
Temos dois arquivos com o nome ‘primeiro’ e ‘segundo’. O primeiro arquivo contém três campos: usuário, url e id.
O segundo arquivo contém dois campos: url e avaliação. Esses dois arquivos são arquivos CSV.
Os operadores Apache Pig podem ser classificados como: Relacional e diagnóstico.
Operadores relacionais:
Operadores relacionais são as principais ferramentas que o Pig Latin fornece para operar nos dados. Ele permite que você transforme os dados classificando, agrupando, juntando, projetando e filtrando. Esta seção cobre os operadores relacionais básicos.
CARGA:
O operador LOAD é usado para carregar dados do sistema de arquivos ou armazenamento HDFS em uma relação Pig.
Neste exemplo, o operador Load carrega os dados do arquivo ‘primeiro’ para formar a relação ‘loading1’. Os nomes dos campos são usuário, url, id.
PARA CADA:
Este operador gera transformações de dados com base em colunas de dados. É usado para adicionar ou remover campos de uma relação. Use a operação FOREACH-GENERATE para trabalhar com colunas de dados.
Resultado FOREACH:
FILTRO:
Este operador seleciona tuplas de uma relação com base em uma condição.
Neste exemplo, estamos filtrando o registro de ‘carregando1’ quando a condição ‘id’ é maior que 8.
Resultado do FILTRO:
JUNTE-SE:
O operador JOIN é usado para realizar uma junção equijoin interna de duas ou mais relações com base em valores de campo comuns. O operador JOIN sempre executa uma junção interna. As junções internas ignoram as chaves nulas, portanto, faz sentido filtrá-las antes da junção.
Neste exemplo, junte as duas relações com base na coluna ‘url’ de ‘loading1’ e ‘loading2’.
Resultado do JOIN:
ORDENAR POR:
Ordenar por é usado para classificar uma relação com base em um ou mais campos. Você pode fazer a classificação em ordem crescente ou decrescente usando as palavras-chave ASC e DESC.
No exemplo a seguir, estamos classificando os dados em loading2 em ordem crescente no campo de classificações.
ORDER BY Result :
DISTINTO:
Distinct remove tuplas duplicadas em uma relação. Vamos pegar um arquivo de entrada como abaixo, que tem amr, merda, 8 e amr, meu blog, 10 duas vezes no arquivo. Quando aplicamos distinção nos dados neste arquivo, as entradas duplicadas são removidas.
Resultado DISTINTO:
LOJA:
Armazenar é usado para salvar resultados no sistema de arquivos.
Aqui estamos salvando carregando3 dados em um arquivo chamado armazenando no HDFS.
aprenda ssis passo a passo
Resultado da LOJA:
GRUPO:
O operador GROUP agrupa as tuplas com a mesma chave de grupo (campo chave). O campo da chave será uma tupla se a chave do grupo tiver mais de um campo, caso contrário, será do mesmo tipo que a chave do grupo. O resultado de uma operação GROUP é uma relação que inclui uma tupla por grupo.
Neste exemplo, grupo th
e relação ‘carregando1’ por url da coluna.
Resultado do GRUPO:
COGROUP:
COGROUP é igual ao operador GROUP. Para facilitar a leitura, os programadores geralmente usam GROUP quando apenas uma relação está envolvida e COGROUP quando várias relações estão envolvidas.
Neste exemplo, agrupe o campo ‘loading1’ e ‘loading2’ por url em ambas as relações.
Resultado COGROUP:
CRUZ:
O operador CROSS é usado para calcular o produto vetorial (produto cartesiano) de duas ou mais relações.
Aplicando produto cruzado no carregamento1 e carregamento2.
Resultado CROSS:
LIMITE:
O operador LIMIT é usado para limitar o número de tuplas de saída. Se o número especificado de tuplas de saída for igual ou superior ao número de tuplas na relação, a saída incluirá todas as tuplas na relação.
LIMIT Resultado:
DIVIDIDO:
O operador SPLIT é usado para particionar o conteúdo de uma relação em duas ou mais relações com base em alguma expressão. Dependendo das condições estabelecidas na expressão.
Divida o carregamento2 em duas relações x e y. A relação x criada por loading2 contém os campos em que a classificação é maior que 8 e a relação y contém os campos em que a classificação é menor ou igual a 8.
Tem alguma questão para nós? Mencione-os na seção de comentários e entraremos em contato com você.
Postagens relacionadas:
Operadores no Apache Pig - Operadores de diagnóstico
Etapas para criar UDF no Apache Pig