CRAN
Das Comprehensive R Archive Network (CRAN) ist ein Netzwerk von Servern auf der ganzen Welt, das " storeR -Distributionen, Erweiterungen, Dokumentation und Binärdateien bereitstellt. Die meisten Spiegelserver werden an Universitäten in der ganzen Welt gehostet, wodurch eine aktive Open-Source-Gemeinschaft entsteht. Das Repository wird von der R-Gemeinschaft ausgiebig genutzt, da es eine große Anzahl von Zusatzpaketen enthält, die im Allgemeinen unter der GPL-Lizenz verfügbar sind. Benutzer können das CRAN-Repository nutzen und die ausgewählten Pakete herunterladen, wobei sie beachten sollten, dass diese Pakete vollständig außerhalb von Netezza liegen.
CRAN-Pakete können auf Netezza installiert werden. Das Netezza R-Bibliothekspaket bietet Werkzeuge für die Installation und Verwaltung von CRAN-Paketen.
nzInstallPackages, nzIsPackageInstalled
nzConnectDSN('NetezzaSQL')
nzInstallPackages("http://cran.r-project.org/src/contrib/bitops_1.0-4.1.tar.gz")
#Host:
#Installing: /nz/export/ae/workspace/nz/r_ae/bitops_1.0-4.1.tar.gz
#* installing to library '/nz/export/ae/languages/r/2.10/host/lib64/R/library'
#* installing *source* package 'bitops' ...
#** libs
#/nz/export/ae/sysroot/host/bin/i686-rhel4-linux-gnu-gcc -std=gnu99
#-I/nz/export/ae/languages/r/2.10/host/lib64/R/include -m32 -fpic -m32 -c
#bit-ops.c -o bit-ops.o
#/nz/export/ae/sysroot/host/bin/i686-rhel4-linux-gnu-gcc -std=gnu99
#-I/nz/export/ae/languages/r/2.10/host/lib64/R/include -m32 -fpic -m32 -c
#cksum.c -o cksum.o
#/nz/export/ae/sysroot/host/bin/i686-rhel4-linux-gnu-gcc -std=gnu99 -shared
#-m32 -L/nz/export/ae/sysroot/host/lib -L/nz/export/ae/sysroot/host/usr/lib
#-L/nz/export/ae/sysroot/host/lib -o bitops.so bit-ops.o cksum.o
#-L/nz/export/ae/languages/r/2.10/host/lib64/R/lib -
lR #** R
#** preparing package for lazy loading
#** help
#*** installing help indices
#** building package indices ...
#* DONE (bitops)
#SPUs:
#Installing: /nz/export/ae/workspace/nz/r_ae/bitops_1.0-4.1.tar.gz
#test: ==: binary operator expected
#test: ==: binary operator expected
#* installing to library /nz/export/ae/languages/r/2.10/spu/lib64/R/library #*
installing *source* package bitops ...
#** libs
#gcc -std=gnu99 -I/nz/export/ae/languages/r/2.10/spu/lib64/R/include -m32
#-fpic -m32 -c bit-ops.c -o bit-ops.o
#gcc -std=gnu99 -I/nz/export/ae/languages/r/2.10/spu/lib64/R/include -m32
#-fpic -m32 -c cksum.c -o cksum.o
#gcc -std=gnu99 -shared -m32 -L/nz/export/ae/sysroot/spu/lib
#-L/nz/export/ae/sysroot/spu/usr/lib -liconv -o bitops.so bit-ops.o cksum.o
#-L/nz/export/ae/languages/r/2.10/spu/lib64/R/lib -
lR #** R
#** preparing package for lazy loading
#** help
#*** installing help indices
#** building package indices ...
#* DONE (bitops)
To verify package installation, use nzIsPackageInstalled().
nzIsPackageInstalled(bitops)
# host spus
# TRUE TRUE
nzIsPackageInstalled(RODBC)
# host spus
# TRUE FALSEDetails zu
- Wenn der Wert des Parameters " pkg mit "
http://beginnt, wird angenommen, dass es sich um eine Webadresse handelt. Das Paket wird dann von der angegebenen URL heruntergeladen und an Netezza gesendet. - Wenn der Parameterwert " pkg eine lokale Datei ist, wird er an Netezza gesendet.
TRUE. Wird das Paket nicht an den angegebenen Orten gefunden, lautet der Rückgabewert " FALSE.nzInstallPackages(pkg, installOnSpus = TRUE)
nzIsPackageInstalled(package)Dabei gilt:- PKG
- Gibt den lokalen Dateipfad oder eine Webadresse an; Webadressen müssen mit "http://" beginnen.
- installOnSpus
- Optional: Wenn '
FALSE, wird das Paket nicht auf SPUs installiert. - Paket
- Gibt den Namen des zu prüfenden Pakets an.
gam, das von CRAN heruntergeladen wurde, verwendet, um ein GAM-Modell auf dem Client zu erstellen. Dieses Modell wird dann auf den Server hochgeladen und datenbankintern auf die Datensätze einer Netezza angewendet. Dieses Paket wird sowohl auf Netezza als auch auf den Client-Rechnern installiert und geladen und zum Erstellen des Modells " model1 verwendet. Die Funktion " pred, die dieses Paket verwendet, wird auf dem Netezza auf einen " nz.data.frame angewendet.nzInstallPackages("http://cran.r-project.org/src/contrib/akima_0.5-4.tar.gz")
#(... output log from installation omitted for clarity)
nzInstallPackages("http://cran.r-project.org/src/contrib/gam_1.04.tar.gz")
#(... output log from installation omitted for clarity)
install.packages("gam")
library(gam)
library(nzr)
nzConnect("user","password","tt4-r040","nza")
#
# model is build in R locally on the client
#
model1 = gam(Sepal.Length~Petal.Length+Petal.Width, iris, family=gaussian)
nzIris = nz.data.frame("iris")
pred <- function(x, model1) {
require(gam)
predict(model1, data.frame(Petal.Length=as.numeric(x[[2]]),
Petal.Width=as.numeric(x[[3]])))
}
#
# then the model is applied to all rows in the database
#
nzApply(nzIris, FUN=pred, model1=model1)