Zapytania SQL do filtrowania tabeli
W poprzednim ćwiczeniu uruchomiłeś/-aś proste zapytanie SQL na DataFrame. Możesz tworzyć też bardziej zaawansowane zapytania, które pozwalają uzyskać dokładnie takie wyniki, jakich potrzebujesz – przydatne na przykład do wizualizacji danych czy uczenia maszynowego. W tym ćwiczeniu skorzystamy z tymczasowej tabeli people, którą wcześniej utworzyłeś/-aś, przefiltrujemy wiersze według wartości kolumny "sex" (męska i żeńska) i stworzymy dwa osobne DataFrame.
Zwróć uwagę, że „rozwiązanie" rozróżnia wielkość liter w poleceniach SQL (np. akceptuje wyłącznie FROM, nie from). Ponadto akceptuje tylko operator "==" – nie "=".
Pamiętaj, że w środowisku pracy masz już dostępną sesję SparkSession spark oraz tymczasową tabelę people.
To ćwiczenie jest częścią kursu
Podstawy Big Data z PySpark
Instrukcje do ćwiczenia
- Przefiltruj tabelę
people, aby wybrać wszystkie wiersze, w których płeć to female, i zapisz wynik w DataFramepeople_female_df. - Przefiltruj tabelę
people, aby wybrać wszystkie wiersze, w których płeć to male, i zapisz wynik w DataFramepeople_male_df. - Policz liczbę wierszy w obu DataFrame:
people_femaleipeople_male.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Filter the people table to select female sex
people_female_df = spark.____('SELECT * FROM ____ WHERE sex=="____"')
# Filter the people table DataFrame to select male sex
people_male_df = spark.____('SELECT * ____ people ____ ____=="____"')
# Count the number of rows in both people_df_female and people_male_df DataFrames
print("There are {} rows in the people_female_df and {} rows in the people_male_df DataFrames".format(people_female_df.____(), people_male_df.____()))