欢迎使用 Vertica R SDK API 文档。本文档涵盖了构成 R SDK 的所有函数。使用此 API,可以创建用户定义的扩展 (UDx),以便将您自己的功能集成到 Vertica Analytics Platform 中。
要了解 UDx 的工作原理以及如何开发、编译和部署它们,请参阅开发用户定义的扩展 (UDx)。
欢迎使用 Vertica R SDK API 文档。本文档涵盖了构成 R SDK 的所有函数。使用此 API,可以创建用户定义的扩展 (UDx),以便将您自己的功能集成到 Vertica Analytics Platform 中。
要了解 UDx 的工作原理以及如何开发、编译和部署它们,请参阅开发用户定义的扩展 (UDx)。
当 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 库文件中定义的其他函数。
工厂函数由一个 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 所需的所有信息。
此函数定义返回到 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 使用默认值。
当指定 LONG VARCHAR 或 LONG VARBINARY 数据类型时,请在两个单词之间包含空格。例如:
datatype = c("long varchar")
此函数定义发送到主函数的参数的输出数据类型、长度/精度和小数位数。
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
不接受任何输入实参。