Introdução
Bem-vindo ao Laboratório de Design de Pistas de Corrida Espacial Intergaláctica! Como um renomado Designer de Pistas de Corrida Espacial, sua missão é analisar os dados de corridas anteriores e projetar uma nova pista emocionante para o próximo Campeonato Intergaláctico de Corrida Espacial. Os melhores pilotos da galáxia competirão nesta pista, ultrapassando os limites de velocidade e resistência.
Seu objetivo é utilizar o poder do Hadoop e suas Funções de Agregação (Aggregating Functions) para extrair informações valiosas dos dados das corridas. Ao analisar várias métricas, como tempos de volta, uso de impulso (boost) e consumo de energia, você poderá identificar padrões e tomar decisões informadas para o design da nova pista.
Prepare-se para embarcar em uma jornada emocionante pelo cosmos, onde suas habilidades analíticas e conhecimento de Hadoop moldarão o futuro das corridas intergalácticas!
Configurando o Ambiente
Nesta etapa, configuraremos o ambiente Hadoop e nos familiarizaremos com os dados da corrida.
- Abra um terminal e mude para o usuário
hadoopexecutando o seguinte comando:
su - hadoop
- Navegue até o diretório
/home/hadoop:
cd /home/hadoop
- Crie um novo diretório chamado
race_datae copie os arquivos de dados da corrida para ele:
hadoop fs -mkdir -p /home/hadoop/race_data
hadoop fs -put /home/hadoop/race_data/* /home/hadoop/race_data
- Verifique se os arquivos foram copiados com sucesso listando o conteúdo do diretório
race_data:
hadoop fs -ls /home/hadoop/race_data
Você deve ver os arquivos de dados da corrida listados na saída.
Analisando os Tempos de Volta
Nesta etapa, usaremos a função avg para analisar os tempos médios de volta dos pilotos durante as corridas anteriores.
- Inicie o shell do Hive:
hive
- Crie uma nova tabela chamada
lap_timespara armazenar os dados dos tempos de volta:
CREATE TABLE lap_times (
pilot_id INT,
race_id INT,
lap_time DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
- Carregue os dados dos tempos de volta do arquivo
race_data/lap_times.csvna tabelalap_times:
LOAD DATA INPATH '/home/hadoop/race_data/lap_times.csv' INTO TABLE lap_times;
- Calcule o tempo médio de volta para cada piloto em todas as corridas:
SELECT pilot_id, avg(lap_time) AS avg_lap_time
FROM lap_times
GROUP BY pilot_id;
Esta consulta exibirá o tempo médio de volta para cada piloto, permitindo que você identifique os pilotos mais rápidos e considere seus pontos fortes ao projetar a nova pista.
Analisando o Uso de Boost
Nesta etapa, usaremos as funções sum e count para analisar os padrões de uso de boost dos pilotos durante as corridas anteriores.
- Crie uma nova tabela chamada
boost_usagepara armazenar os dados de uso de boost:
CREATE TABLE boost_usage (
pilot_id INT,
race_id INT,
boost_used BOOLEAN
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
- Carregue os dados de uso de boost do arquivo
race_data/boost_usage.csvna tabelaboost_usage:
LOAD DATA INPATH '/home/hadoop/race_data/boost_usage.csv' INTO TABLE boost_usage;
- Calcule o número total de vezes que cada piloto usou o boost durante as corridas:
SELECT pilot_id, sum(CASE WHEN boost_used THEN 1 ELSE 0 END) AS total_boosts_used
FROM boost_usage
GROUP BY pilot_id;
- Calcule a porcentagem de corridas em que cada piloto usou o boost:
SELECT pilot_id,
round(
sum(CASE WHEN boost_used THEN 1 ELSE 0 END) * 100.0 / count(*),
2
) AS boost_usage_percentage
FROM boost_usage
GROUP BY pilot_id;
Essas consultas fornecerão insights sobre os padrões de uso de boost dos pilotos, o que pode ajudá-lo a determinar a colocação ideal de plataformas de boost e estações de recarga de energia na nova pista.
Analisando o Consumo de Energia
Nesta etapa, usaremos as funções min e max para analisar os padrões de consumo de energia dos pilotos durante as corridas anteriores.
- Crie uma nova tabela chamada
energy_consumptionpara armazenar os dados de consumo de energia:
CREATE TABLE energy_consumption (
pilot_id INT,
race_id INT,
energy_consumed DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
- Carregue os dados de consumo de energia do arquivo
race_data/energy_consumption.csvna tabelaenergy_consumption:
LOAD DATA INPATH '/home/hadoop/race_data/energy_consumption.csv' INTO TABLE energy_consumption;
- Encontre o consumo mínimo e máximo de energia para cada piloto em todas as corridas:
SELECT pilot_id, min(energy_consumed) AS min_energy_consumed, max(energy_consumed) AS max_energy_consumed
FROM energy_consumption
GROUP BY pilot_id;
- Calcule o consumo médio de energia para cada piloto em todas as corridas:
SELECT pilot_id, avg(energy_consumed) AS avg_energy_consumed
FROM energy_consumption
GROUP BY pilot_id;
Essas consultas ajudarão você a entender os padrões de consumo de energia dos pilotos, o que pode influenciar a colocação de estações de recarga de energia e o design de seções eficientes em termos de energia na nova pista.
Resumo
Neste laboratório, você explorou o poder das Funções de Agregação do Hadoop para analisar vários aspectos dos dados da corrida, incluindo tempos de volta, uso de boost e consumo de energia. Ao aproveitar as funções avg, sum, count, min e max, você obteve informações valiosas sobre o desempenho e os padrões dos pilotos das corridas anteriores.
Esses insights servirão como base para projetar uma nova pista emocionante que atenda aos pontos fortes e fracos dos pilotos, garantindo um Campeonato Intergaláctico de Corrida Espacial emocionante e competitivo.
Por meio desta experiência prática, você não apenas aprimorou suas habilidades em Hadoop e Hive, mas também desenvolveu uma compreensão mais profunda das técnicas de análise de dados que podem ser aplicadas em vários domínios. Parabéns por concluir este laboratório e contribuir para o futuro das corridas intergalácticas!



