Quantcast
Channel: CodeSection,代码区,SQL Server(mssql)数据库 技术分享 - CodeSec
Viewing all articles
Browse latest Browse all 3160

How Do I Add an R Package to SQL Server from In-Database R?

$
0
0
SQLBalls

Bradley Ball is a MCITP SQL 2005 & MCTS 2008 DBA with over 10 years of IT experience. Bradley spent 8 years working as a Defense contractor for clients such as the U.S. Army and The Executive Office of the President of the United States. He is currently a Sr. Consultant for Pragmatic Works. He has presented at SQL Saturdays 62, 74, 79, 85, 86, 131, for the MAGICPASS & OPASS SSUG’s, SQL Rally 2011 & 2012, SQL Dev Connections 2012, the PASS Summit in 2011, and is scheduled for the PASS Summit 2012 and SQL Live 360 later this year. He recently finished Chapter 14 of Expert SQL Server Practices on Page & Row Compression and can be found blogging on http://www.sqlballs.com .

How Do I Add an R Package to SQL Server from In-Database R? Posted on 28 February 2017 Comments

Hello Dear Reader! I'm working on some really fun stuff with in-database R using SQL Server 2016.

I needed to add a couple packages to my R engine so I could use them and call them from an R script. I realized I had not added any external packages to my R instance so this was a perfect opportunity to write a blog! So here is a quick blog on how you add an R Package to SQL Server. This entire tutorial is if you have internet. If you need to do this for a server, which probably doesn't have access to internet look at this MSDN article, Install Additional R Packages on SQL Server.

First we need to find our instance default install path for SQL Server. In this case I'm a comic book geek and my named instances are JARVIS and STARK. STARK is my 2016 instance so we'll need to find that path.


How Do I Add an R Package to SQL Server from In-Database R?

In this case my path isC:\Program Files\Microsoft SQL Server\mssql13.STARK\R_SERVICES\bin\x64 , then I want to hold down SHIFT and right click on the Rgui.exe, then select Run as administrator.


How Do I Add an R Package to SQL Server from In-Database R?

After this opens we need to create a variable to hold the location were we would like the package to be installed. Then we can install the package we want to use, in this case the plyr package .


How Do I Add an R Package to SQL Server from In-Database R?

lib.SQL <- "C:\\Program Files\\Microsoft SQL Server\\MSSQL13.STARK\\R_SERVICES\\library"

install.packages("plyr", lib=lib.SQL)

Notice I adjusted the path for my named instance.

After it installs our window should look like this.


How Do I Add an R Package to SQL Server from In-Database R?

Now I can run a simple test script loading the plyr package.

execute sp_execute_external_script

@language = N'R'

, @script = N'

library(plyr);

OutputDataSet<-InputDataSet'

, @input_data_1 = N'select 1'

WITH RESULT SETS undefined ;

If I get this error the package did not load.

Msg 39004, Level 16, State 20, Line 4

A 'R' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x80004004.

Msg 39019, Level 16, State 1, Line 4

An external script error occurred:

Error in library(plyr) : there is no package called 'plyr'

Calls: source -> withVisible -> eval -> eval -> library


Error in ScaleR. Check the output for more information.

Error in eval(expr, envir, enclos) :

Error in ScaleR. Check the output for more information.

Calls: source -> withVisible -> eval -> eval -> .Call

Execution halted

Msg 11536, Level 16, State 1, Line 4

EXECUTE statement failed because its WITH RESULT SETS clause specified 1 result set(s), but the statement only sent 0 result set(s) at run time.

If I the statement compiles, everything is fine and I get a result set.


How Do I Add an R Package to SQL Server from In-Database R?

As always Thanks for stopping by.

Thanks,

Brad


Viewing all articles
Browse latest Browse all 3160

Trending Articles