Janelas em hiveql
O conceito de janelas,
Conteúdo
atrasos Partida vêm com o território ao voar é o seu modo escolhido de viagem. Ele vem como nenhuma surpresa, então, que os dados de vôo RITA-compilado inclui esta informação. &ldquo-O que é exatamente a média de atraso de vôo por dia&rdquo-? A consulta na listagem a seguir produz a média de atraso da partida por dia em 2008.
(UMA) colmeia (flightdata) gt; CREATE VIEW avgdepdelay ASGT; DayOfWeek SELECT, AVG (DepDelay) FROM FlightInfo2008 GROUP BY DayOfWeek-OKTime tomadas: 0,121 segundos(B) colmeia (flightdata) gt; * SELECT FROM avgdepdelay -... OK1 10,2699902444594732 8,976897120687353 8,2897610536587284 9,7728971778367025 12,1580363878696566 8,6456809049036147 11.568973392595312Time feita: 18,6 segundos, obtida: 7 linha (s)
TGIF, ou &ldquo-Thank God It&rsquo-s sexta-feira,&rdquo- doesn&rsquo-t aplicam a todos. Não deve ser nenhuma surpresa que sexta-feira - Dia 5 sob os resultados na Etapa (B) - teve o maior número de atrasos.
Video: REVIT 2012 - TUTORIAL 15 - JANELAS EM FITA
De qualquer forma, sobre essa consulta no Passo (A): Hive&rsquo-s Data Definition Language (DDL) também inclui o CREATE VIEW declaração, que pode ser bastante útil. Em Hive, vista permitir uma consulta para ser salvo, mas os dados não são armazenados como com a Tabela Criar como Select (CTAS) comunicado.
Quando uma vista é referenciada em HiveQL, Hive executa a consulta e, em seguida, utiliza os resultados, que poderiam ser parte de uma consulta mais ampla. Isto pode ser muito útil para simplificar consultas complexas e dividi-los em componentes lógicos. Além disso, observe a cláusula GROUP BY, que reúne todos os dias por semana e permite que o AVG função agregado para proporcionar uma resposta consolidada por dia.
Video: Felipe Duram - Na sua Janela | Clipe Oficial
Esta informação é útil, é claro, mas o que se você quiser ver alguns números individuais por dia? Consolidar os dados com GROUP BY, e você tem a resposta que&rsquo-re procurando, embora você&rsquo-perdi informação também. Resolver este problema de perda de informações é onde janelas torna-se bastante útil.
Aqui&rsquo-s outra pergunta sobre os dados de vôo RITA 2008, que Apache Hive pode responder: &ldquo-O que é o primeiro vôo entre o Aeroporto de X e Y&rdquo-? Suponha que, além de esta informação, você quer saber sobre voos subsequentes, apenas no caso de você&rsquo-re não um &pessoa ldquo-manhã.&rdquo- Bem, este é um trabalho para de janelas em HiveQL! A listagem a seguir fornece uma consulta que responde a estas perguntas.
Video: Anderson Freire - Só Você (Letra)
(UMA) colmeia (flightdata) gt; f08.Month SELECT, f08.DayOfMonth, cr.description, f08.Origin, f08.Dest, f08.FlightNum, f08.DepTime, MIN (f08.DepTime) OVER (PARTITION BY f08.DayOfMonth ORDER BY f08.DepTime) FROM flightinfo2008 f08 Cadastre Carriers cr ONf08.UniqueCarrier = cr.codeWHERE f08.Origin = `JFK` E f08.Dest = `ORD` ANDf08.Month = 1 AND f08.DepTime! = 0 -... OK1 1 JetBlue Airways JFK ORD 903 641 6411 1 American Airlines Inc. JFK ORD 1323 833 6411 1 JetBlue Airways JFK ORD 907 929 6411 1 Comair Inc. JFK ORD 5083 945 6411 1 Comair Inc. JFK ORD 5634 1215 6411 1 JetBlue Airways JFK ORD 915 1352 6411 1 American Airlines Inc. JFK ORD 1323 833 6411 1 JetBlue Airways JFK ORD 907 929 6411 1 Comair Inc. JFK ORD 5083 945 6411 1 Comair Inc. JFK ORD 5634 1215 6411 1 JetBlue Airways JFK ORD 915 1352 6411 1 American Airlines Inc. JFK ORD 1815 1610 6411 1 JetBlue Airways JFK ORD 917 1735 6411 1 Comair Inc. JFK ORD 5469 1749 6411 1 Comair Inc. JFK ORD 5492 2000 6411 1 JetBlue Airways JFK ORD 919 2102 6411 31 JetBlue Airways JFK ORD 919 48 481 31 JetBlue Airways JFK ORD 903 635 481 31 Comair Inc. JFK ORD 5447 650 481 31 American Airlines Inc. JFK ORD 1323 840 481 31 JetBlue Airways JFK ORD 907 921 481 31 JetBlue Airways JFK ORD 917 1859 48
No passo (a), o GROUP BY cláusula foi substituído com o SOBRE cláusula onde você especificar o PARTITION ou janela sobre a qual você deseja que o MIN função agregado de operar. Também está incluído o ORDENAR POR cláusula de modo que você pode ver esses voos subsequentes após a primeira.
Video: Larissa Manoela - Fugir Agora
Como você pode ver a partir da listagem, em 31 de janeiro, a JetBlue tem um bom vôo, cedo no 0:48 -OPT para uma posterior, às 6h35 questões mais madrugadores de lado, note que você tem mantido a informação em a saída da consulta que teria sido perdido se você tivesse escolhido usar um GROUP BY cláusula novamente.
Esta capacidade só faz windowing um poderoso recurso, e há&rsquo-s mais. Junto com janelas na liberação Hive 0,11, a comunidade forneceu algumas de análise funções que você pode usar em conjunto com janelas. Também à sua disposição são as seguintes funções: CLASSIFICAÇÃO, ROW_NUMBER, DENSE_RANK, CUME_DIST, percent_rank, e NTILE.
Finalmente, don&rsquo-t perder o uso de JUNTE-SE: Isto&rsquo-s uma vida real, exemplo prático de uma junção interna em que você se juntar ao FlightInfo2008 tabela com o Carriers tabela para obter o nome da companhia aérea - em vez do código enigmática encontrada no FlightInfo2008 mesa.