Hem Personliga finanser Fönstret i HiveQL-dummies

Fönstret i HiveQL-dummies

Video: Gustafsson 3 tr - S01e02 - Fönstret mot gården 2024

Video: Gustafsson 3 tr - S01e02 - Fönstret mot gården 2024
Anonim

Begreppet windowing, som introduceras i SQL: 2003-standarden gör det möjligt för SQL-programmeraren att skapa en ram från data mot vilken aggregat och andra fönsterfunktioner kan fungera. HiveQL stöder nu fönsterrutan per SQL-standarden. Exempel är ganska användbara när man förklarar fönster och aggregatfunktioner.

Avgångsförseningar kommer med territoriet när flygningen är ditt valda resealternativ. Det är ingen överraskning att RITA-sammanställda flygdata inkluderar denna information. & Ldquo; Vad exakt är den genomsnittliga flygförseningen per dag & rdquo; ? Frågan i följande lista ger den genomsnittliga avgångsfördröjningen per dag under 2008.

(A) hive (flightdata)> CREATE VIEW avgdepdelay AS> SELECT DayOfWeek, AVG (DepDelay) FRÅN FlightInfo2008 GROUP BY DayOfWeek; OK Tidsupptagen: 0. 121 sekunder (B) hive (flightdata)> SELECT * FRÅN avgdepdelay; … OK 1 10. 269990244459473 2 8. 97689712068735 3 8. 289761053658728 4 9. 772897177836702 5 12. 158036387869656 6 8. 645680904903614 7 11. 568973392595312 Tidsåtgång: 18. 6 sekunder, Fetched: 7 rad (er)

TGIF, eller & ldquo; Tack Gud Det är fredag, & rdquo; gäller inte alla. Det skulle inte vara någon överraskning att fredagen - dag 5 under resultaten i steg (B) - hade det högsta antalet förseningar.

Hur som helst, om den frågan i steg (A): Hives Data Definition Language (DDL) innehåller också CREATE VIEW-satsen, vilket kan vara ganska användbart. I Hive tillåter visningar en fråga att sparas, men data lagras inte som med uppställningen Skapa tabell som Select (CTAS).

När en vy hänvisas till i HiveQL exekverar Hive frågan och använder sedan resultaten, som kan ingå i en större fråga. Detta kan vara mycket användbart för att förenkla komplexa frågor och bryta ner dem i logiska komponenter. Lägg märke till GROUP BY-klausulen som samlar alla dagar i veckan och gör att AVG-aggregatfunktionen kan ge ett konsoliderat svar per dag.

Denna information är naturligtvis användbar, men vad händer om du vill se några enskilda nummer per dag? Konsolidera data med GROUP BY, och du har svaret du letar efter, även om du har förlorat information också. Att lösa detta problem med informationsförlust är hur fönstret blir ganska användbart.

Här är en annan fråga om RITA 2008 flygdata som Apache Hive kan svara: & ldquo; Vad är den första flygningen mellan flygplatsen X och Y & rdquo; ? Anta att förutom denna information vill du veta om efterföljande flyg, bara om du inte är en & ldquo; morgon människa.& Rdquo; Jo, det här är ett jobb för att fönstera i HiveQL! Följande notering ger dig en fråga som svarar på dessa frågor.

(A) hive (flightdata)> SELECT f08. Månad, f08. DayOfMonth, cr. beskrivning, f08. Ursprung, f08. Dest, f08. FlightNum, f08. DepTime, MIN (f08. DepTime) ÖVER (PARTITION BY f08. DayOfMonth ORDER BY f08. DepTime) FRÅN flightinfo2008 f08 HJÄLPAR BOLAGAR KRAFTF08. UniqueCarrier = cr. kod VAR f08. Ursprung = 'JFK' OCH F08. Dest = 'ORD' OCH F08. Månad = 1 OCH f08. DepTime! = 0; … OK 1 1 JetBlue Airways JFK ORD 903 641 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1815 1610 641 1 1 JetBlue Airways JFK ORD 917 1735 641 1 1 Comair Inc. JFK ORD 5469 1749 641 1 1 Comair Inc. JFK ORD 5492 2000 641 1 1 JetBlue Airways JFK ORD 919 2102 641 1 31 JetBlue Airways JFK ORD 919 48 48 1 31 JetBlue Airways JFK ORD 903 635 48 1 31 Comair Inc. JFK ORD 5447 650 48 1 31 American Airlines Inc. JFK ORD 1323 840 48 1 31 JetBlue Airways JFK ORD 907 921 48 1 31 JetBlue Airways JFK ORD 917 1859 48

I steg (A) ersattes GROUP BY-klausulen med OVER-klausulen där du anger PARTITION eller fönster där du vill att MIN aggregatfunktionen ska fungera. Dessutom ingår ordningen ORDER BY så att du kan se de efterföljande flygningarna efter den första.

Som du kan se från noteringen, den 31 januari, har JetBlue ett bra tidigt flyg vid 12: 48 a. m. -för en senare, klockan 6:35 a. m. Tidigare utgåvor avviker, notera att du har behållit informationen i sökutgången som skulle ha gått vilse om du hade valt att använda en GROUP BY-klausul igen.

Den här funktionen gör att Windowing är en kraftfull funktion, och det finns mer. Tillsammans med windowing i Hive 0. 11 release, gav samhället vissa analysfunktioner som du kan använda i samband med fönsterrutan. Du har även följande funktioner: RANK, ROW_NUMBER, DENSE_RANK, CUME_DIST, PERCENT_RANK och NTILE.

Slutligen missa inte användningen av JOIN: Det är ett verkligt, praktiskt exempel på ett inre sammanfogning där du går med i FlightInfo2008-bordet med bärbordet för att få namnet på flygbolaget - snarare än den kryptiska koden som finns i tabellen FlightInfo2008.

Fönstret i HiveQL-dummies

Redaktörens val

Jewish Funeral Traditions - dummies

Jewish Funeral Traditions - dummies

Judiska begravningar sker vanligen i en synagoge, begravningshem eller på en kyrkogård. Med tradition är judiska begravningar enkla (symboliserar tron ​​att människor är alla lika i döden), men de varierar mycket och har ingen uppsättning liturgi. Att skicka blommor till ett begravnings- eller sorgshem är starkt avskräckt i judendomen. Inte bara kommer ...

Identifiera komplicerade grävande dummies

Identifiera komplicerade grävande dummies

Komplicerat roende är det tekniska namnet som sorgproffs ger till en sorgprocess som sitter fast vid något tillfälle , vilket gör det omöjligt för de förlorade att framgångsrikt starta eller avsluta sorgprocessen. Komplicerat sorg är ofta ett tecken på olösta problem i förhållandet mellan de förlorade och den avlidne som gör det ...

Redaktörens val

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

När du har en anpassad vy för MapController i din iOS-app, måste du berätta för iPad-storyboardet att du laddar in din anpassade vy i stället för en UIViewController. Följ dessa steg: Välj Projekt navigator genom att välja Main_iPad. storyboard och välj sedan View Controller i View Controller - Map Scene i dokumentutskriften. ...

Hur man roterar objekt i din iOS-app - dummies

Hur man roterar objekt i din iOS-app - dummies

Här hittar du hur man rotera en vy (i så fall vrid bilen runt) i din iOS-app. För att göra det uppdaterar du den roterande kodstuben du startade med och ersätter den med den fetstilta koden. - (void) rotera {CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animation) () = ^ () {self. bil. transformera = transformera; ...

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Bör du lägga till en ny anpassad vykontroll till din iOS-app innan du fortsätter till dessa steg. Du behöver fortfarande berätta för storyboardet att du vill att den ska ladda den nya anpassade vykontrollen istället för en UIViewController. Följ dessa steg:

Redaktörens val

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Adobe Creative Suite 5 (Adobe CS5) Illustrator tillåter Du sparar en grafisk stil. En grafisk stil är en kombination av alla inställningar du väljer för ett visst filter eller en effekt i Utseendepanelen. Genom att spara informationen i en grafisk stil lagras du dessa attribut så att du snabbt och enkelt kan tillämpa ...

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

I Adobe Creative Suite 5 (Adobe CS5 ) Illustratör du kan använda markeringsverktyget för att skala och rotera ett valt objekt. Dra begränsningsboxens handtag för att ändra storlek på objektet, eller flytta dig utanför ett handtag och sedan, när markören ändras till en flippig pil (en böjd pil med pilhuvud i båda ändarna), dra till ...

Objekttransformation i Adobe CS5 Illustrator - dummies

Objekttransformation i Adobe CS5 Illustrator - dummies

Verktygen Rotate, Reflect, Scale och Shear i Adobe Creative Suite 5 (Adobe CS5) Illustrator använder alla samma grundläggande steg för att utföra transformationer. Här är fem sätt att transformera ett objekt: en för en godtycklig omvandling och fyra andra för exakta omvandlingar baserat på en numerisk mängd som du anger. Vilkårlig omvandlingsmetod Eftersom detta ...