2014-05-19 8 views
0

저는 이것에 대해서도 vertica 지원을 요청했지만 any1에 동일한 문제가 있는지 궁금합니다.Vertica의 R UDF에 문자 매개 변수를 전달하는 중 오류가 발생했습니다.

Vertica Analytic Database v6.1.3-0과 호환됩니다. Vertica R 언어 팩과 함께 제공되는 R 버전 3.0.0을 사용하고 있습니다.

USING PARAMETERS 키워드와 함께 전달 된 매개 변수를 사용하는 간단한 UDF를 만들려고합니다. 내가 매개 변수와 함수에 대한 Vertica의의 모범을 시도하고 나는 변경 때, 일

drop library r_test cascade; 
create or replace library r_test as '.../testFun.r' language 'R'; 
create transform function testFun as name 'testFunFactory' library r_test; 

create table test as select 1 as x union select 2 union select 3 union select 4 union select 5 union select 6 union select 7; 
select testFun(x) over() from test; 
> ERROR 3399: Failure in UDx RPC call InvokeGetParameterType(): Error calling getParameterType() in User Defined Object [testFun] at [/scratch_a/release/vbuild/vertica/UDxFence/vertica-udx-R.cpp:245], error code: 0, message: Error happened in getParameterType : not compatible with REALSXP 

: Vertica의에서

testFun <- function(x,y) { 
# extract the function parameters from y 
    parameter <- y[["parameter"]] # parameter to be passed 
    sum(x[,1]) 
} 

testFunParams <- function() 
{ 
params <- data.frame(datatype=rep(NA, 1), length=rep(NA,1),scale=rep(NA,1),name=rep(NA,1)) 
params[1,1] <- "varchar" 
params[1,2] <- "40" 
params[1,4] <- "parameter" 
params 
} 

testFunFactory <- function() 
{ 
list(
name=testFun 
,udxtype=c("transform") 
,intype=c("int") 
,outtype=c("varchar(200)") 
,outnames=c('test') 
,parametertypecallback=testFunParams 
,volatility=c("stable") 
,strict=c("called_on_null_input") 
) 
} 

내가 라이브러리를 실행

는 R 코드 실패한 varchar에 대한 매개 변수 유형입니다.

수행 할 수있는 작업은 무엇입니까?

감사

답변

0

나는 구성을 테스트하고 다음과 같은 오류를 반환

[...] 오류가 getParameterType에서 일어난 : REALSXP와 호환되지 않습니다 [...]

그리고 일부 조정 후 무슨 일이 일어 났는지 압니다. "testFunParams"에 숫자 대신 문자 값으로 "축척"을 저장했습니다.

도움이 될지 테스트 =)

관련 문제