Filtrera rader
Förutom att välja kolumner är filtrering av rader ett annat sätt att plocka ut viktiga delar av din datamängd. Det görs med funktionen filter(). När du använder filter() skickar du in en tibble och några logiska villkor. Om du till exempel bara vill returnera de rader där värdena i kolumn x är större än noll och värdena i y är lika med värdena i z, skriver du så här.
a_tibble %>%
filter(x > 0, y == z)
Innan du provar övningen finns det två saker att tänka på. För det första: förväxla inte dplyrs filter() med stats-paketets filter(). För det andra omvandlar sparklyr din dplyr-kod till SQL-databaskod innan den skickas till Spark. Det innebär att bara ett begränsat antal filtreringsoperationer stöds för närvarande. Du kan till exempel inte filtrera textrader med reguljära uttryck med kod som
a_tibble %>%
filter(grepl("a regex", x))
Hjälpsidan för translate_sql() beskriver vilka funktioner som är tillgängliga. Du kan använda jämförelseoperatorer som >, != och %in%, aritmetiska operatorer som +, ^ och %%, samt logiska operatorer som &, | och !. Många matematiska funktioner som log(), abs(), round() och sin() stöds också.
Precis som tidigare fungerar indexering med hakparentes inte för närvarande.
Den här övningen är en del av kursen
Introduktion till Spark med sparklyr i R
Övningsinstruktioner
En Spark-anslutning har skapats åt dig som spark_conn. En tibble kopplad till spårmetadata lagrad i Spark har fördefinieras som track_metadata_tbl.
- Precis som i föregående övning väljer du
artist_name,release,titleochyearmedselect(). - Skicka resultatet vidare med pipe till
filter()för att hämta spår från 1960-talet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)
# Manipulate the track metadata
track_metadata_tbl %>%
# Select columns
___ %>%
# Filter rows
___