Filtrování řádků
Kromě výběru sloupců je dalším způsobem, jak získat důležité části datasetu, filtrování řádků. K tomu slouží funkce filter(). Funkci filter() předáš tibble a logické podmínky. Chceš-li například vrátit pouze řádky, kde jsou hodnoty sloupce x větší než nula a zároveň hodnoty y se rovnají hodnotám z, použiješ následující kód.
a_tibble %>%
filter(x > 0, y == z)
Než se pustíš do cvičení, dej pozor na dvě věci. Zaprvé, nezaměňuj funkci filter() z balíčku dplyr s funkcí filter() z balíčku stats. Zadruhé, sparklyr převádí tvůj dplyr kód do SQL před tím, než ho odešle do Sparku. To znamená, že je aktuálně podporována jen omezená sada filtrovacích operací. Například nemůžeš filtrovat textové řádky pomocí regulárních výrazů tímto způsobem:
a_tibble %>%
filter(grepl("a regex", x))
Dostupné možnosti jsou popsány na stránce nápovědy funkce translate_sql(). Bez problémů můžeš používat porovnávací operátory jako >, != a %in%; aritmetické operátory jako +, ^ a %%; a logické operátory jako &, | a !. Podporovány jsou také mnohé matematické funkce, například log(), abs(), round() a sin().
Indexování pomocí hranatých závorek zatím není podporováno.
Toto cvičení je součástí kurzu
Úvod do Sparku se sparklyr v R
Pokyny k cvičení
Spark připojení je pro tebe připraveno jako spark_conn. Tibble napojený na metadata skladeb uložená ve Sparku je předdefinován jako track_metadata_tbl.
- Stejně jako v předchozím cvičení vyber sloupce
artist_name,release,titleayearpomocíselect(). - Výsledek předej rourou do funkce
filter()a získej skladby ze šedesátých let.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)
# Manipulate the track metadata
track_metadata_tbl %>%
# Select columns
___ %>%
# Filter rows
___