Aula 04 – Tarefa 02 do simulado da prova de certificação HDP Hortonworks

Certificação Hortonworks Hadoop FS – Certificação HDP hortonworks

Simulado da prova de certificação HDP Hortonworks

TAREFA 02

Limpando os dados usando Pig

Observe que os valores são separados por vírgulas nos arquivos flightdelays no HDFS contêm dados históricos de atrasos de vôos de linhas aéreas. As colunas nos arquivos correspondem ao seguinte esquema:

Year, Month, DayofMonth, DayOfWeek, DepTime, CRSDepTime, ArrTime, CRSArrTime, UniqueCarrier, FlightNum, TailNum, ActualElapsedTime, CRSElapsedTime, AirTime, ArrDelay, DepDelay, Origin, Dest, Distance, TaxiIn, TaxiOut, Cancelled, CancellationCode, Diverted, CarrierDelay, WeatherDelay, NASDelay, SecurityDelay, LateAircraftDelay.

Escreva um script Pig que satisfaça todos os seguintes critérios:

  1. Carregue todos os dados em /user/horton/flightdelays
  2. Remova todas as linhas do flightdelays onde a coluna DepTime é igual à string “NA”.
  3. A saída só deve conter somente: Year, Month, DayofMonth, DepTime, UniqueCarrier, FlightNum, ArrDelay, Origin e Dest.
  4. Armazene o resultado em registros separados por vírgula em um novo diretório no HDFS chamado:  /user/horton/flightdelays_clean
  5. Salve o script em um arquivo chamado flightdelays_clean.pig e salve-o no diretório /home/horton/solutions no sistema de arquivos local da máquina cliente.

 

Script:

-- Carrega o arquivo flightdelays usando o PigStorage indicando o separador dos campos, a vírgula.
a = load 'flightdelays' using PigStorage(',');
-- Filtra pelo campo 4 (DepTime) e o 11 (ActualElapsedTime) retirando os que tem 'NA'
b = filter a by (chararray) $4 != 'NA' or (chararray) $11 != 'NA';
-- Gera uma relação limpa, sem campos com 'NA' só com os campos pedidos no passo 3.
c = foreach b generate $0 as year:int, $1 as month:int, $2 as dayofmonth:int, $4 as deptime:int, $8 as uniquecarrier:chararray, $9 as flightnum:chararray, $14 as arrdelay:int, $16 as origin:chararray, $17 as dest:chararray;

--Armazena a relação c no diretório /user/horton/flightdelays_clean
store c into '/user/horton/flightdelays_clean' using PigStorage(',');

Obrigado

Até a próxima

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *