这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

R SDK

欢迎使用 Vertica R SDK API 文档。本文档涵盖了构成 R SDK 的所有函数。使用此 API,可以创建用户定义的扩展 (UDx),以便将您自己的功能集成到 Vertica Analytics Platform 中。

要了解 UDx 的工作原理以及如何开发、编译和部署它们,请参阅开发用户定义的扩展 (UDx)

1 - 主函数

当 Vertica 运行 R 用户定义的扩展 (UDx) 时调用的第一个函数。它必须返回一个数据帧,并由工厂函数的 name 参数定义。

示例

FunctionName <- function(input_data_frame, parameters_data_frame) {
  # Each column from Vertica is turned into a column in the input data frame.
  # This is a brief example of multiplying two columns of the input data frame.
  output_data_frame <- data.frame(input_data_frame[, 1] * input_data_frame[, 2])
  # The function must return a data frame.
  return(output_data_frame)
}

参数

描述

主函数使用一个数据帧作为输入并将其用作第一个实参,如果 UDx 接受参数,则可以将参数数据帧作为第二个实参。主函数必须返回一个数据帧。工厂函数可将 intype 实参转换为数据帧以供主函数使用。例如,工厂函数可将 intype=c("float","float") 转换为二维矩阵。

该函数可以调用在 R UDx 库文件中定义的其他函数。

2 - 工厂函数

工厂函数由一个 R 列表组成,该列表指定 R 用户定义的扩展 (UDx) 的参数。

示例

FunctionNameFactory <- function() {
  list(name                  = MainFunctionName,
       udxtype               = c("scalar"),
       intype                = c("float","int", ...),
       outtype               = c("float", ...),
       outtypecallback       = MyReturnTypeFunc,
       parametertypecallback = MyParamReturnFunc,
       volatility            = c("volatile"),
       strictness            = c("called_on_null_input") )
}

实参

描述

采用 R 的用户定义的函数 (R Udx) 需要为您要从 Vertica 中调用的每个主 R 函数定义一个工厂函数。工厂函数会封装 Vertica 加载 R UDx 所需的所有信息。

3 - Outtypecallback 函数

此函数定义返回到 Vertica 的数据的列名称、输出数据类型、长度/精度和小数位数。

示例


SalesTaxReturnTypes <- function(arguments.data.frame, parameters.data.frame) {
  output.return.type <- data.frame(datatype = rep(NA, 2),
                                   length   = rep(NA, 2),
                                   scale    = rep(NA, 2),
                                   name     = rep(NA, 2))
  output.return.type$datatype <- c("float", "float")
  output.return.type$name <- c("Sales Tax Rate", "Item Cost with Tax")
  return(output.return.type)
}

参数

描述

当创建 outtypecallback 函数时,为返回的每个值定义一行。与工厂函数中定义的 outtype 中一样使用相同的顺序。如果任何列保留为空或省略 outtypecallback 函数,则 Vertica 使用默认值。

4 - Parametertypecallback 函数

此函数定义发送到主函数的参数的输出数据类型、长度/精度和小数位数。

示例

FunctionNameParameterTypes <- function() {
  parameters <- list(datatype = c("int", "varchar"),
                     length   = c("NA", "100"),
                     scale    = c("NA", "NA"),
                     name     = c("k", "algorithm"))
  return(parameters)
}

参数

描述

当创建 parametertypecallback 函数时,为要发送到函数的每个参数定义一行。如果您的 UDx 使用参数,则必须指定 parametertypecallback 函数。

parametertypecallback 不接受任何输入实参。