2016-07-22 77 views
0

我有一个很长的R脚本文件,我想使用SQL Server R服务,阅读它的documentation,我还没有看到任何使用示例:sp_execute_external_script,它允许加载一个R脚本文件。所有的例子都打算利用嵌入的SQL语句,如下面的例子简单的R-计算:sp_execute_external_script调用R脚本文件

DROP PROC IF EXISTS get_iris_dataset; 
go 
CREATE PROC get_iris_dataset 
AS 
BEGIN 
EXEC sp_execute_external_script 
    @language = N'R' 
, @script = N'iris_data <- iris;' 
, @input_data_1 = N'' 
, @output_data_1_name = N'iris_data' 
WITH RESULT SETS (("Sepal.Length" float not null, 
     "Sepal.Width" float not null, 
    "Petal.Length" float not null, 
    "Petal.Width" float not null, "Species" varchar(100))); 
END; 
go 

我需要以某种方式使用R-句子source("fileName")用于执行R-句子。

注意:我试图使用SQL Server只是因为比我的个人计算机更好的机器性能。

由于提前,

大卫

+0

您尝试访问的R脚本文件是否保存在SQL Server计算机上?如果是这样,那么你应该能够获得源代码,就像在R中那样,假设它们具有读访问权限。 –

回答

2

这当然是可以使用source("filename")你执行的R脚本。 R脚本应该位于SQL Server有权访问的地方。 例如:source("C:/Rscripts/script.R")。请注意,SQL Server无法访问您的“我的文档”文件夹...

EXEC sp_execute_external_script 
@language = N'R' 
,@script = N' 
source("C:/Rscripts/script.R");' 
,@input_data_1 = N'' 
,@output_data_1_name = N'iris_data' 
WITH RESULT SETS (("Sepal.Length" float not null, 
"Sepal.Width" float not null, 
"Petal.Length" float not null, 
"Petal.Width" float not null, "Species" varchar(100)));