Filtrering och Val av Data med SQL
Svep för att visa menyn
En Temporary View är ett sessionsbaserat alias för en DataFrame som gör det möjligt att interagera med data med hjälp av standard SQL-syntax. Den flyttar eller duplicerar inte data; den tillhandahåller helt enkelt ett SQL-vänligt "fönster" till DataFrame som finns i klustrets minne.
Även om Python är utmärkt för att bygga komplexa pipelines, föredrar många dataproffs SQL:s läsbarhet och snabbhet för filtrering och urval av data. I Databricks behöver du inte välja det ena eller det andra. Du kan omvandla en Python DataFrame till en temporär SQL-tabell (en "view") och omedelbart börja göra SQL-frågor mot den.
Skapa en Temporary View
Innan du kan köra en SQL-fråga mot en DataFrame måste du ge den ett namn som SQL-motorn kan känna igen. Detta görs med metoden createOrReplaceTempView.
# Create a SQL view named 'diamond_view' from our existing DataFrame
df.createOrReplaceTempView("diamond_view")
Den "Replace"-delen av detta kommando är viktig: den säkerställer att om du kör cellen igen kommer vyn helt enkelt att uppdateras istället för att orsaka ett fel. Denna vy existerar endast under din nuvarande notebook-session.
Fråga med %sql-magi
Nu när vyn är registrerad kan du byta språk. Genom att använda %sql-magikommandot högst upp i en ny cell kan du utföra exakt samma urval och filtrering som du gjorde i Python, men med standard SQL-syntax.
%sql
SELECT carat, cut, depth
FROM diamond_view
WHERE price > 500
Kraften i SQL-filtrering
SQL är särskilt intuitivt för komplex filtrering. Du kan använda operatorn IN för att filtrera på flera värden eller operatorn LIKE för mönstermatchning – uppgifter som ofta är mer omständliga i Python.
%sql
SELECT * FROM diamond_view
WHERE cut IN ('Good', 'Premium')
AND clarity LIKE '%V%'
Välja och ge alias till kolumner
I SQL är det enkelt att välja och byta namn på kolumner med hjälp av nyckelordet AS. Detta är en vanlig praxis för att göra rubrikerna i din slutrapport mer professionella.
%sql
SELECT
carat,
cut AS Diamond_Quality,
price AS Selling_Price
FROM diamond_view
Varför använda en temporär vy?
Du kanske undrar: "Varför inte bara fråga tabellen direkt från katalogen?" Fördelen med en temporär vy är att den låter dig fråga en DataFrame som du redan har delvis rensat eller modifierat i Python. Det fungerar som en brygga, där du kan använda Python för det "tunga lyftet" inom datahantering och SQL för den slutliga analysen och visualiseringen.
1. Vilken Python-metod måste du köra innan du kan använda %sql för att fråga en DataFrame?
2. Vad händer med en "temporär vy" när du kopplar bort din notebook från klustret eller avslutar din session?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal