Daten per Sampling verkleinern
Wenn du mit einem großen Datensatz arbeitest, musst du in der Regel nicht ständig mit allen Daten arbeiten. Gerade am Anfang eines Projekts, wenn du noch viel ausprobierst, kannst du oft schneller iterieren, wenn du mit einem kleineren Teil der Daten arbeitest. sdf_sample() bietet dafür eine praktische Möglichkeit. Die Funktion nimmt ein Tibble sowie den Anteil der zurückzugebenden Zeilen. In diesem Fall möchtest du ohne Zurücklegen samplen. Um eine Zufallsstichprobe von einem Zehntel deines Datensatzes zu ziehen, würdest du folgenden Code verwenden.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Da die Ergebnisse des Samplings zufällig sind und du den verkleinerten Datensatz wahrscheinlich wiederverwenden möchtest, ist es üblich, compute() zu verwenden, um die Ergebnisse als weiteren Spark-DataFrame zu speichern.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Um die Ergebnisse reproduzierbar zu machen, kannst du über das Argument seed auch einen Startwert für den Zufallszahlengenerator setzen. Dadurch erhältst du jedes Mal denselben Zufallsdatensatz, wenn du deinen Code ausführst. Welchen Wert du als Seed verwendest, ist egal; wähle einfach deine Lieblings-Positive ganze Zahl.
Diese Übung ist Teil des Kurses
Einführung in Spark mit sparklyr in R
Anleitung zur Übung
Eine Spark-Verbindung wurde für dich als spark_conn erstellt. Ein Tibble mit den in Spark gespeicherten Track-Metadaten ist als track_metadata_tbl vordefiniert.
- Verwende
sdf_sample(), um 1 % der Track-Metadaten ohne Zurücklegen zu samplen.- Übergib
20000229an das Argumentseed, um einen Zufalls-Startwert zu setzen.
- Übergib
- Berechne das Ergebnis und speichere es in einer Tabelle namens
"sample_track_metadata".
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___