Popcorn-Doppelvorstellung
Die dplyr-Methoden, die du in den letzten beiden Kapiteln gesehen hast, nutzen Sparks SQL-Schnittstelle. Das heißt, dein R-Code wird in SQL-Code umgewandelt, bevor er an Spark übergeben wird. Das ist eine hervorragende Lösung für grundlegende Datenmanipulation, stößt aber an Grenzen, wenn du komplexere Verarbeitungsschritte brauchst. Du kannst zum Beispiel den Mittelwert einer Spalte berechnen, aber nicht den Median. Hier ist das Beispiel aus der Übung „Spalten zusammenfassen“ aus Kapitel 1.
track_metadata_tbl %>%
summarize(mean_duration = mean(duration)) #OK
track_metadata_tbl %>%
summarize(median_duration = median(duration))
sparklyr bietet außerdem zwei „native“ Schnittstellen, die in den nächsten beiden Kapiteln behandelt werden. „Native“ bedeutet, dass Java- oder Scala-Code aufgerufen wird, um direkt auf Spark-Bibliotheken zuzugreifen – ohne Umwandlung in SQL. sparklyr unterstützt die Spark DataFrame Application Programming Interface (API) mit Funktionen, die mit sdf_ beginnen. Außerdem gibt es Zugriff auf Sparks Machine-Learning-Bibliothek MLlib mit „Feature-Transformation“-Funktionen, die mit ft_ beginnen, und „Machine-Learning“-Funktionen, die mit ml_ beginnen.
Ein wichtiger konzeptioneller Unterschied zwischen der Arbeit mit R und mit Spark ist, dass Spark viel strenger bei Variablentypen ist als R. Die meisten nativen Funktionen erwarten Eingaben vom Typ DoubleType und liefern Ausgaben vom Typ DoubleType. DoubleType ist Sparks Entsprechung zum R-Vektortyp numeric. sparklyr übernimmt die Umwandlung von numeric in DoubleType, aber es liegt an dir, logical- oder integer-Daten in numeric zu konvertieren und bei Bedarf wieder zurück.
Welche dieser Aussagen ist richtig?
- Die
dplyr-Methoden vonsparklyrwandeln Code in Scala-Code um, bevor er auf Spark ausgeführt wird. - Das Umwandeln von R-Code in SQL-Code begrenzt die Anzahl der unterstützten Berechnungen.
- Die meisten Modellierungsfunktionen von Spark MLlib erfordern
DoubleTypeals Eingabe und gebenDoubleTypezurück. - Die meisten Modellierungsfunktionen von Spark MLlib erfordern
IntegerTypeals Eingabe und gebenBooleanTypezurück.
Diese Übung ist Teil des Kurses
Einführung in Spark mit sparklyr in R
Interaktive Übung
In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.
Übung starten