2016-04-08 17 views
0

我與SAP一起使用SAP HANA。我在R中使用cSPADE實現,因此將數據加載到臨時文件中。 但直到知道它迄今爲止工作得很好,但現在我得到一個錯誤。這似乎是臨時文件的一些問題。HANA RLANG臨時文件無法打開連接

Could not execute 'CALL "BETA_SYSTEM"."run"()' in 15.741 seconds . 
SAP DBTech JDBC: [2048]: column store error: [2048] "BETA_SYSTEM"."run": line 21 col 2 (at pos 821): [2048] (range 3): column store error: [2048] "BETA_SYSTEM"."beta.procedures::selectSpadeData": line 33 col 4 (at pos 992): [2048] (range 3): column store error: search table error: [34082] Execution of R script failed.;Error in file(file, ifelse(append, "a", "w")) : 
    cannot open the connection 
stack trace: 
2: file(file, ifelse(append, "a", "w")) 
1: write.table(spade_data, file = file, sep = " ", row.names = FALSE, 
     quote = FALSE, col.names = FALSE) 


CREATE PROCEDURE BETA_SYSTEM.spadeR ( 
    IN spade_data "SPADE_INPUT_T", 
    OUT result "SPADE_RESULT_T" 
) 
    LANGUAGE RLANG 
    AS       
BEGIN 
    library(Matrix) 
    library(arules) 
    library(arulesSequences) 
    file <- tempfile() 
    write.table(spade_data, file = file, sep = " ", row.names=FALSE, quote = FALSE, col.names=FALSE) 
    df_trans <- read_baskets(file, info=c("sequenceID", "eventID", "SIZE")) 
    as(df_trans, "data.frame") 
    err_res <- tryCatch({ 
    s_res <- cspade(df_trans, parameter = list(support = 0), control = list(verbose = TRUE)) 
    }, warning= function(war) { 

    }, error=function(err) { 

    }, finally={ 

    } 
) 
    if(length(err_res) == 0){ 
    result<-data.frame(sequence="EMPTY",support=0) 
    } else { 
    result <- as(s_res, "data.frame") 
    } 
END; 

回答

0

錯誤堆棧指示訪問文件時出現問題。這發生在由RSERV產生的R進程中。所以它在SAP HANA之外,我會建議檢查具有相同工作目錄的R進程是否可以實際執行文件操作。

也許文件系統已滿或訪問權限已更改!?

相關問題