在CRAN中

R Archive Network (CRAN) 是一个由世界各地的服务器组成的网络,其中storeR发行版、扩展、文档和二进制文件。 大多数镜像服务器都托管在世界各地的大学里,形成了一个活跃的开放源代码社区。 由于有大量的附加软件包,R 社区广泛使用该资源库,这些软件包一般都遵循 GPL 许可证。 用户可以利用 CRAN 资源库下载所选软件包,但应注意这些软件包完全不属于Netezza。

可在Netezza 上安装 CRAN 软件包。 NetezzaR 库软件包提供了安装和管理 CRAN 软件包的工具。

nzInstallPackages, nzIsPackageInstalled

要安装软件包,请使用 "nzInstallPackages()。 请注意,在主机和 SPU 上,默认安装过程分两步。 成功安装软件包的函数输出(安装日志)见下例。
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

详细信息

nzInstallPackages()函数向Netezza发送指定的 CRAN 软件包并安装该软件包。
  • 如果 "pkg参数值以 "http://开头,则假定为网址。 然后从指定的 URL 下载数据包,并将其发送至 Netezza。
  • 如果 "pkg参数值是本地文件,它将被发送到Netezza。
文件发送后,将被安装到Netezza系统上,其中包括编译Fortran代码。 安装和编译完成后,屏幕上会显示安装日志。
nzIsPackageInstalled()函数检查Netezza主机和 SPU 上是否安装了软件包。 如果在主机或 SPU 上找到软件包,屏幕上将显示一条信息。 如果在指定位置找到软件包,返回值为 "TRUE。 如果在指定位置未找到软件包,则返回值为 "FALSE
nzInstallPackages(pkg, installOnSpus = TRUE)
nzIsPackageInstalled(package)
其中:
指定本地文件路径或网址;网址必须以http://开头。
installOnSpus
可选。 FALSE时,软件包未安装在 SPU 上。
指定要检查的软件包名称。
注意:参数与 "nzInstallPackages()和 "nzIsPackageInstalled()函数一起使用。
外部软件包可在客户端和服务器上使用。 在下面的示例中,我们使用从 CRAN 下载的外部 "gam软件包在客户端建立一个 GAM 模型。 然后将该模型上传到服务器,并在数据库中应用于Netezza表的记录。 该软件包在Netezza和客户端计算机上安装并加载,用于构建模型 "model1。 使用该软件包的 "pred函数在Netezza系统上应用于 "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)