HANA:创建 R 程序时出错
HANA: Error while creating R Procedure
我正在尝试在 HANA 中创建一个使用 R 代码的过程。结果,我想计算缺失值。我在 R Studio 中尝试了 R 代码,它有效:
DROP Table "THESIS"."THESIS_FOLDER::COUNT_MISSING_VALUES";
CREATE Column TABLE "THESIS"."THESIS_FOLDER::COUNT_MISSING_VALUES" (RESULT" INT );
DROP PROCEDURE "THESIS"."ANALYSE_MISSINGDATA";
Create PROCEDURE "THESIS"."ANALYSE_MISSINGDATA" (IN input _SYS_BIC"."THESIS_FOLDER/CA_SAMPLE", OUT OUTPUT_DATA "THESIS"."THESIS_FOLDER::COUNT_MISSING_VALUE" )
LANGUAGE RLANG AS
BEGIN
result<-sapply(input, function(x) sum(is.na(x)))
OUTPUT_DATA<-data.frame(RESULT=result)
END;
Call "THESIS"."ANALYSE_MISSINGDATA"("_SYS_BIC"."THESIS_FOLDER/CA_SAMPLE",?);
但是当我尝试这样做时,出现以下错误:
SAP DBTech JDBC:[2048]:列存储错误:搜索 table 错误:[34084] 接收错误:获取结果错误。;失败:找不到对象 'output_data'。
有人知道我做错了什么吗?
谢谢。
错误消息的原因是您使用大写字母引用输出变量。
检查 "SAP HANA R Integration Guide":
The variable names from the procedure definition should not contain uppercase letters. Therefore, the variable names in R should also not contain upper-case letters
只需将 OUTPUT_DATA<-data.frame(RESULT=result)
更改为 output_data<-data.frame(RESULT=result)
,您的代码应该可以正常工作。
我正在尝试在 HANA 中创建一个使用 R 代码的过程。结果,我想计算缺失值。我在 R Studio 中尝试了 R 代码,它有效:
DROP Table "THESIS"."THESIS_FOLDER::COUNT_MISSING_VALUES";
CREATE Column TABLE "THESIS"."THESIS_FOLDER::COUNT_MISSING_VALUES" (RESULT" INT );
DROP PROCEDURE "THESIS"."ANALYSE_MISSINGDATA";
Create PROCEDURE "THESIS"."ANALYSE_MISSINGDATA" (IN input _SYS_BIC"."THESIS_FOLDER/CA_SAMPLE", OUT OUTPUT_DATA "THESIS"."THESIS_FOLDER::COUNT_MISSING_VALUE" )
LANGUAGE RLANG AS
BEGIN
result<-sapply(input, function(x) sum(is.na(x)))
OUTPUT_DATA<-data.frame(RESULT=result)
END;
Call "THESIS"."ANALYSE_MISSINGDATA"("_SYS_BIC"."THESIS_FOLDER/CA_SAMPLE",?);
但是当我尝试这样做时,出现以下错误: SAP DBTech JDBC:[2048]:列存储错误:搜索 table 错误:[34084] 接收错误:获取结果错误。;失败:找不到对象 'output_data'。
有人知道我做错了什么吗?
谢谢。
错误消息的原因是您使用大写字母引用输出变量。 检查 "SAP HANA R Integration Guide":
The variable names from the procedure definition should not contain uppercase letters. Therefore, the variable names in R should also not contain upper-case letters
只需将 OUTPUT_DATA<-data.frame(RESULT=result)
更改为 output_data<-data.frame(RESULT=result)
,您的代码应该可以正常工作。