Daten in Spark kopieren
Bevor du mit Spark richtig loslegen kannst, musst du deine Daten hineinbekommen. sparklyr bietet Funktionen wie spark_read_csv(), mit denen du eine CSV-Datei in Spark einlesen kannst. Allgemeiner ist es hilfreich, Daten von R nach Spark kopieren zu können. Das geht mit der copy_to()-Funktion aus dplyr. Achtung: Das Kopieren von Daten ist grundsätzlich langsam. Ein wichtiger Teil der Performance-Optimierung bei sehr großen Datensätzen besteht darin, Wege zu finden, das Kopieren von Daten von einem Ort zum anderen zu vermeiden.
copy_to() erwartet zwei Argumente: eine Spark-Verbindung (dest) und einen zu Spark zu kopierenden Data-Frame (df).
Sobald du deine Daten nach Spark kopiert hast, möchtest du vielleicht sicherstellen, dass es geklappt hat. Eine Liste aller in Spark gespeicherten Data-Frames bekommst du mit src_tbls(); diese Funktion nimmt einfach die Spark-Verbindung (x) als Argument entgegen.
Im Laufe des Kurses erkundest du Track-Metadaten aus dem Million Song Dataset. Zwar skaliert Spark weit über eine Million Zeilen hinaus, aber um es einfach und reaktionsschnell zu halten, verwendest du einen Ausschnitt mit tausend Tracks. Zur Begriffsklärung: Ein „Track“ entspricht einer Zeile im Datensatz. Für deinen Datensatz mit tausend Tracks ist das dasselbe wie ein „Song“ (im vollständigen Datensatz mit einer Million Zeilen gab es allerdings einige doppelte Songs).
Diese Übung ist Teil des Kurses
Einführung in Spark mit sparklyr in R
Anleitung zur Übung
track_metadata mit Songtitel, Künstlername und weiteren Metadaten für 1.000 Tracks wurde in deinem Workspace bereits vordefiniert.
- Nutze
str(), um den Datensatztrack_metadatazu untersuchen. - Stelle eine Verbindung zu deinem lokalen Spark-Cluster her und speichere sie in
spark_conn. - Kopiere
track_metadatamitcopy_to()in den Spark-Cluster. - Prüfe mit
src_tbls(), welche Data-Frames in Spark verfügbar sind. - Trenne die Verbindung zu Spark.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Load dplyr
___
# Explore track_metadata structure
___
# Connect to your Spark cluster
spark_conn <- spark_connect("___")
# Copy track_metadata to Spark
track_metadata_tbl <- ___(___, ___, overwrite = TRUE)
# List the data frames available in Spark
___(___)
# Disconnect from Spark
spark_disconnect(___)