Filtrering og Udvælgelse af Data med SQL
Stryg for at vise menuen
En midlertidig visning er et sessionsafgrænset alias for en DataFrame, der gør det muligt at interagere med dine data ved hjælp af standard SQL-syntaks. Den flytter eller duplikerer ikke dataene; den giver blot et SQL-venligt "vindue" ind i DataFrame'en, som ligger i clusterens hukommelse.
Selvom Python er fremragende til at opbygge komplekse pipelines, foretrækker mange datamedarbejdere læsbarheden og hastigheden ved SQL til filtrering og udvælgelse af data. I Databricks behøver du ikke vælge det ene frem for det andet. Du kan omdanne en Python DataFrame til en midlertidig SQL-tabel (en "view") og straks begynde at forespørge på den.
Oprettelse af en midlertidig visning
Før du kan køre en SQL-forespørgsel mod en DataFrame, skal du give den et navn, som SQL-motoren kan genkende. Dette kan du gøre ved at bruge metoden createOrReplaceTempView.
# Create a SQL view named 'diamond_view' from our existing DataFrame
df.createOrReplaceTempView("diamond_view")
Den "Replace"-del af denne kommando er vigtig: den sikrer, at hvis du kører cellen igen, vil den blot opdatere visningen i stedet for at forårsage en fejl. Denne visning eksisterer kun under din nuværende notebook-session.
Forespørgsler med %sql-magic
Nu hvor visningen er registreret, kan du skifte sprog. Ved at bruge %sql-magic-kommandoen øverst i en ny celle kan du udføre præcis de samme udvælgelser og filtreringer, som du gjorde i Python, men ved hjælp af standard SQL-syntaks.
%sql
SELECT carat, cut, depth
FROM diamond_view
WHERE price > 500
Kraften ved SQL-filtrering
SQL er særligt intuitivt til kompleks filtrering. Du kan bruge IN-operatoren til at filtrere efter flere værdier eller LIKE-operatoren til mønstergenkendelse – opgaver, der ofte er mere omstændelige i Python.
%sql
SELECT * FROM diamond_view
WHERE cut IN ('Good', 'Premium')
AND clarity LIKE '%V%'
Valg og aliasering af kolonner
I SQL er det enkelt at vælge og omdøbe kolonner ved hjælp af nøgleordet AS. Dette er en almindelig praksis for at gøre dine endelige rapportoverskrifter mere professionelle.
%sql
SELECT
carat,
cut AS Diamond_Quality,
price AS Selling_Price
FROM diamond_view
Hvorfor bruge et midlertidigt view?
Du spørger måske: "Hvorfor ikke bare forespørge tabellen direkte fra kataloget?" Fordelen ved et midlertidigt view er, at det giver dig mulighed for at forespørge et DataFrame, som du allerede delvist har renset eller ændret i Python. Det fungerer som en bro, der gør det muligt at bruge Python til det "tunge arbejde" med data engineering og SQL til den endelige analyse og visualisering.
1. Hvilken Python-metode skal du køre, før du kan bruge %sql til at forespørge en DataFrame?
2. Hvad sker der med en "midlertidig visning", når du afbryder din notesbog fra klyngen eller afslutter din session?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat