Betriebsarten und High-Level-API

Erfahren Sie mehr über die Betriebsmodi, die typischerweise vom clientseitigen Code verwendet werden, wie z. B. die Funktionen des Netezza R Library-Pakets.

Die folgenden Betriebsmodi werden typischerweise vom clientseitigen Code verwendet, z. B. von den Funktionen des Netezza R Library-Pakets:
Ausführung
Führt die vom Benutzer bereitgestellte Funktion ohne Änderung aus.
anwenden
Ruft die vom Benutzer bereitgestellte Funktion für jede Zeile der Eingabetabelle auf und wendet sie auf den Eingabedatenstrom an.
klopfen
Wendet die vom Benutzer bereitgestellte Funktion auf Gruppen von Zeilen an, die als " data.frames übergeben werden.
installieren
Installiert ein R-Erweiterungspaket, das vom Benutzer bereitgestellt wird, auf Host und SPUs.
gruppierte Anwendung
Wendet eine vom Benutzer bereitgestellte Funktion auf eine Reihe von Datenteilmengen an, die auf der Grundlage einer benutzerdefinierten GROUP BY-Klausel erstellt wurden.
Jeder dieser Modi setzt voraus, dass der Benutzer eine Reihe von Eingabeobjekten bereitstellt, z. B. einen Modusbezeichner, die Funktion selbst mit allen zusätzlichen Argumenten in einem genau festgelegten Format.
Hinweis: Die Bedeutung des Begriffs "Modus" in Bezug auf R hängt vom jeweiligen Kontext ab. Hier bezieht es sich auf eine serverseitige R-Funktion auf hoher Ebene, die eine Reihe von vom Benutzer bereitgestellten Parametern akzeptiert, d. h. eine Funktion mit optionalen Argumenten. Diese Funktionen steuern den Teil des Ablaufs, der nicht direkt mit der Datenverarbeitung zusammenhängt, z. B. die Schleife, die eine Eingabezeile erstellt, sie dann an die vom Benutzer bereitgestellte Funktion weitergibt und das Ergebnis der Funktion ausgibt. In allen Modi, mit Ausnahme von run, wird ein Teil der Low-Level-API vor dem Benutzer verborgen.
Das folgende Beispiel zeigt den Modus " apply:
# we assume that 'fun' is the user-provided function
while (getNext()) {
row <- list()
for (i in seq(inputColumnCount()))
row[[i]] <- getInputColumn(i-1)
ret <- do.call(fun, c(list(x=row), args))
if (length(ret)) {
for (i in 1:length(ret))
setOutput(i-1, ret[[i]])
outputResult()
}
}