为什么我的R脚本可以在RStudio中工作,而不能在SSMS中工作?

时间:2019-01-23 22:30:57

标签: r tsql ssms ssms-2016

在RStudio中正确执行的脚本在SQL Server 2016 Management Studio中出现错误。环境详细信息如下。

RStudio

platform: x86_64-w64-mingw32          
arch: x86_64                      
os: mingw32                     
system: x86_64, mingw32             
status:                                     
major: 3                           
minor: 4.3                         
year: 2017                        
month: 11                          
day: 30                          
svn rev: 73796                       
language: R                           
version.string: R version 3.4.3 (2017-11-30)
nickname: Kite-Eating Tree

SSMS

Product: Microsoft SQL Server Enterprise (64-bit)
Operating System: Microsoft Windows NT 6.3 (9600)
Platform: NT x64
Version: 13.0.5216.0

这是我尝试执行的代码。

EXECUTE sp_execute_external_script
@language = N'R',
@script = N'
library(RODBC)
library(jsonlite)
library(purrr)
library(tidyr)
library(dplyr)
library(lubridate)

connectionString <- odbcConnect(dsn="KMhivehttp")
goldInstrumentApps <- sqlQuery(connectionString, "select CAST(instrumentapps_event.event AS varchar(8000)) AS event, 
                               instrumentapps_event.load_ts, 
                               instrumentapps_event.data_dt from dmfwk_gold.instrumentapps_event")

goldInstrumentDF <- data.frame(goldInstrumentApps)

formattedDF <- transform(goldInstrumentDF, instrumentapps_event.load_ts = 
       ymd_hms(as.character(goldInstrumentDF$instrumentapps_event.load_ts)))
'

以下是我正在处理的数据的一些信息:

str(goldInstrumentDF)

这将返回:

  来自外部脚本的

STDOUT消息:'data.frame':411个观察点。共3   变量:$事件:具有408级的因子   “ {\” time \“:\” 2018-11-12T14:45:01.133Z \“,\” application \“:\” com_ldo_suchma_loma_cw_prod-salesorderreturnsservice_1.1.6 \“,\” verb \“:” |   被截断,..:1 18 27 29 28 22 22 8 16 17 24 ... $ load_ts:因子w / 42级“ 2018/11/13 19:20:58”,..:1 1 1 1 1 1 1 1 1 1 ... $ data_dt:   具有33个级别的因子“ HIVE_DEFAULT_PARTITION ”,..:2 3 3 3 3 3 3 3 3   3 ...

这是导致错误的代码:

formattedDF <- transform(goldInstrumentDF, instrumentapps_event.load_ts = 
       ymd_hms(as.character(goldInstrumentDF$instrumentapps_event.load_ts))) 

这是错误:

  

data.frame(list(event = c(1L,18L,27L,29L,28L,22L,8L,   16L ,:参数表示不同的行数:411,0调用:   源... transform-> transform.data.frame-> do.call-> data.frame

     

ScaleR中的错误。检查输出以获取更多信息。错误中   eval(expr,envir,enclos):ScaleR中的错误。检查输出是否   更多信息。调用:来源-> withVisible->评估->评估->   .Call执行中止警告消息:关闭未使用的RODBC句柄1

我在做什么错了?

0 个答案:

没有答案