Zeilen filtern
Neben dem Auswählen von Spalten kannst du wichtige Teile deines Datensatzes auch herausziehen, indem du Zeilen filterst. Das machst du mit der Funktion filter(). Um filter() zu verwenden, übergibst du ein Tibble und logische Bedingungen. Wenn du zum Beispiel nur die Zeilen zurückgeben willst, in denen die Werte der Spalte x größer als null sind und die Werte von y den Werten von z entsprechen, würdest du Folgendes schreiben.
a_tibble %>%
filter(x > 0, y == z)
Bevor du die Übung startest, beachte zwei Warnhinweise. Erstens: Verwechsele die filter()-Funktion aus dplyr nicht mit der filter()-Funktion aus dem Paket stats. Zweitens: sparklyr übersetzt deinen dplyr-Code in SQL, bevor er an Spark übergeben wird. Das bedeutet, dass derzeit nur eine begrenzte Anzahl von Filteroperationen unterstützt wird. Du kannst zum Beispiel keine Zeichenkettenzeilen mit regulären Ausdrücken filtern, also kein Code wie
a_tibble %>%
filter(grepl("a regex", x))
Die Hilfeseite zu translate_sql() beschreibt die verfügbaren Funktionen. Du kannst Vergleichsoperatoren wie >, != und %in% verwenden; arithmetische Operatoren wie +, ^ und %%; und logische Operatoren wie &, | und !. Viele mathematische Funktionen wie log(), abs(), round() und sin() werden ebenfalls unterstützt.
Wie zuvor funktioniert das Indizieren mit eckigen Klammern derzeit nicht.
Diese Übung ist Teil des Kurses
Einführung in Spark mit sparklyr in R
Anleitung zur Übung
Eine Spark-Verbindung wurde als spark_conn für dich erstellt. Ein Tibble, das mit den in Spark gespeicherten Track-Metadaten verknüpft ist, wurde als track_metadata_tbl vordefiniert.
- Wähle wie in der vorherigen Übung
artist_name,release,titleundyearmitselect()aus. - Übergib das Ergebnis mit einer Pipe an
filter(), um die Tracks aus den 1960ern zu erhalten.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)
# Manipulate the track metadata
track_metadata_tbl %>%
# Select columns
___ %>%
# Filter rows
___