CRAN

La Comprehensive R Archive Network (CRAN) es una red de servidores de todo el mundo que ' storeR distribuciones, extensiones, documentación y binarios. La mayoría de los servidores espejo están alojados en universidades de todo el mundo, lo que crea una comunidad activa de código abierto. El repositorio es muy utilizado por la comunidad R, debido al gran número de paquetes complementarios, que suelen estar disponibles bajo licencia GPL. Los usuarios pueden aprovechar el repositorio CRAN y descargar los paquetes elegidos, aunque deben tener en cuenta que estos paquetes son completamente externos a Netezza.

Los paquetes CRAN pueden instalarse en Netezza. El paquete Netezza R library proporciona herramientas para instalar y gestionar paquetes CRAN.

nzInstallPackages, nzIsPackageInstalled

Para instalar un paquete, utilice ' nzInstallPackages(). Tenga en cuenta que, tanto en el Host como en las SPU, el proceso de instalación en dos pasos es el predeterminado. La salida de la función (registro de instalación) para una instalación correcta de un paquete se presenta en el siguiente ejemplo.
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 FALSE

Detalles

La función ' nzInstallPackages() ' envía el paquete CRAN especificado a Netezza e instala este paquete.
  • Si el valor del parámetro ' pkg ' empieza por ' http://, se supone que es una dirección web. A continuación, el paquete se descarga de la URL especificada y se envía a Netezza.
  • Si el valor del parámetro ' pkg ' es un archivo local, se envía a Netezza.
Una vez enviado el archivo, se instala en el sistema Netezza, lo que implica compilar el código Fortran. Una vez finalizada la instalación y la compilación, aparece en pantalla el registro de la instalación.
La función ' nzIsPackageInstalled() ' comprueba si un paquete está instalado en el Host Netezza y en las SPUs. Si el paquete se encuentra en el Host o en las SPUs, aparece un mensaje en la pantalla. Si el paquete se encuentra en las ubicaciones especificadas, el valor de retorno es ' TRUE. Si el paquete no se encuentra en las ubicaciones especificadas, el valor de retorno es ' FALSE.
nzInstallPackages(pkg, installOnSpus = TRUE)
nzIsPackageInstalled(package)
Donde:
paquete
Especifica la ruta del archivo local o una dirección web; las direcciones web deben empezar porhttp://
installOnSpus
Opcional. Cuando ' FALSE, el paquete no está instalado en las SPU.
paquete
Especifica el nombre del paquete que debe comprobarse.
Nota: ' Los argumentos se utilizan con las funciones ' nzInstallPackages() y ' nzIsPackageInstalled() '.
Los paquetes externos pueden utilizarse en el cliente y en el servidor. En el siguiente ejemplo, el paquete externo ' gam ', que se descarga de CRAN, se utiliza para construir un modelo GAM en el cliente. A continuación, este modelo se carga en el servidor y se aplica en la base de datos a los registros de una tabla Netezza. Este paquete se instala y se carga tanto en Netezza como en los equipos cliente, y se utiliza para construir el modelo " model1. La función " pred ", que utiliza este paquete, se aplica en el sistema Netezza a un " nz.data.frame.
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)