LoslegenKostenlos loslegen

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?

  1. Die dplyr-Methoden von sparklyr wandeln Code in Scala-Code um, bevor er auf Spark ausgeführt wird.
  2. Das Umwandeln von R-Code in SQL-Code begrenzt die Anzahl der unterstützten Berechnungen.
  3. Die meisten Modellierungsfunktionen von Spark MLlib erfordern DoubleType als Eingabe und geben DoubleType zurück.
  4. Die meisten Modellierungsfunktionen von Spark MLlib erfordern IntegerType als Eingabe und geben BooleanType zurück.

Diese Übung ist Teil des Kurses

Einführung in Spark mit sparklyr in R

Kurs anzeigen

Interaktive Übung

In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.

Übung starten