Я создал модель в R, опубликовал ее в таблице SQL Server и проверил модель, вызвав ее в SQL Server.Тем не менее, я терплю неудачу в попытке использовать модель для прогнозирования новых данных.Вот мой сценарий:
DROP PROCEDURE IF EXISTS predict_risk_new_data;
GO
CREATE OR ALTER PROCEDURE predict_risk_new_data (@q nvarchar(max))
AS
BEGIN
DECLARE @model varchar(30) = 'risk_rxLogit'
DECLARE @rx_model varbinary(max) = (SELECT model FROM rx_models WHERE model_name = @model);
EXEC sp_execute_external_script
@language = N'R'
,@script = N'
require("RevoScaleR");
input_data = InputDataSet;
model <- unserialize(rx_model);
prediction <- rxPredict(model, input_data, writeModelVars = TRUE);
OutputDataSet <- cbind(predictions[1], predictions[2]);'
,@input_data_1 = @q
,@parallel = 1
,@params = N'@rx_model varbinary(max), @r_rowsPerRead int'
,@input_data_1_name = N'InputDataSet'
,@rx_model = @rx_model
,@r_rowsPerRead = 100
WITH result sets (("Risk_Pred" float, "ZIP" int));
END
GO;
/*
EXEC predict_risk 'SELECT TOP 100 [ZIP], [Week], [Age], [Risk] FROM dbo.Risk'
*/
Вот вывод ошибки:
Сообщение 39004, уровень 16, состояние 20, строка 223 Ошибка сценария 'R' во время выполнения сценария sp_execute_external_script'с HRESULT 0x80004004.Сообщение 39019, уровень 16, состояние 2, строка 223 Произошла внешняя ошибка сценария: Ошибка в unserialize (rx_model): ошибка чтения Вызовы: source -> withVisible -> eval -> eval -> unserialize
Ошибка выполнения,Проверьте вывод для получения дополнительной информации.Ошибка в eval (expr, envir, enclos): Ошибка в выполнении.Проверьте вывод для получения дополнительной информации.Вызовы: source -> withVisible -> eval -> eval -> .Call Выполнение остановлено
Впервые в R / ML в SQL Server, помощь будет оценена.Заранее спасибо.