作者:惠嘟du | 来源:互联网 | 2023-09-10 13:20
Ihaveaforloopthatusuallywritestoaflatfile.Thisway,ifanythingbreaks,Icanstartwher
I have a for loop that usually writes to a flat file. This way, if anything breaks, I can start where I left off. I want to convert this process to read and write from a SQL table directly using the new RevoScaleR functions in a SQL Server 2016 stored procedure that executes my R code.
我有一个通常写入平面文件的for循环。这样,如果有什么破裂,我可以从我离开的地方开始。我想将此进程转换为直接使用执行我的R代码的SQL Server 2016存储过程中的新RevoScaleR函数从SQL表读取和写入。
Here is a simple SPROC:
这是一个简单的SPROC:
USE [master]
GO
/****** Object: StoredProcedure [dbo].[Rscript_geocodeUSACities_TEST] Script Date: 8/8/2017 11:40:40 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Rscript_geocodeUSACities_TEST]
@usrOutputFilePath varchar(150)
,@usrOutputFileName varchar(150)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @rScript nvarchar(max) = N'
#### USER INPUTS ####
usrOutputFile <- "' + @usrOutputFilePath + @usrOutputFileName + '"
#### ESTABLISH ENVIRONMENT ####
library(data.table)
library(foreach)
library(XML)
library(RCurl)
library(RJSONIO)
##turn off scientific notation
options(scipen=999)
##establish compute context
sqlServerConnString <- "Server=.;Database=External;Trusted_COnnection=true"
sqlServerCC <- RxInSqlServer(cOnnectionString=sqlServerConnString)
rxSetComputeContext(sqlServerCC)
print(rxGetComputeContext())
#### GEOCODE ####
print(dfInputData)
rxDataStep(data=dfInputData,outFile=imp.USA_Cities_Map,append="rows")
'
EXECUTE sp_execute_external_script
@language = N'R'
, @script = @rScript
,@input_data_1 =N'select 5 as test_insert'
,@input_data_1_name =N'dfInputData'
;
END
Error ouput:
错误输出:
Error in rxDataStep(data = dfInputData, outFile = imp.USA_Cities_Map, :
object 'imp.USA_Cities_Map' not found
1 个解决方案