sp_execute_external_script调用R脚本文件

时间:2016-07-22 18:50:34

标签: r sql-server-2016

我有一个很长的R脚本文件,我想使用SQL Server R服务,阅读它的documentation,我还没有看到任何使用的例子: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 -script文件。所有示例都旨在使用嵌入在SQL语句中的简单r计算,例如以下示例:

source("fileName")

我需要以某种方式使用r句Function gettitle(strfile) 'On Error Resume next Set text = fso.OpenTextFile(strfile ,1) title = "" read = text.Readall strdata = InStr(read,"<title>") If strdata <> 0 Then intstart = strdata + 7 strtext = Mid(read,intstart,250) For i = 1 To Len(strtext) If Mid(strtext,i,1)= "<" Then Exit For Else title = title & Mid(strtext,i,1) End If Next End if WScript.Echo title End Function 来执行r句子。

注意:我正在尝试使用SQL Server,因为它比我的个人计算机具有更好的机器性能。

提前致谢,

大卫

1 个答案:

答案 0 :(得分:5)

使用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)));