[英]Installing R-packages in Azure Data Lake Analytics
安裝以下R-package並在封裝在U-SQL-script中的R-script中引用它們時出現問題。 我成功地在不需要特殊程序包的U-SQL作業中運行了簡單的R腳本。 現在,我試圖創建一個引用dplyr,tdyr和reshape2的R腳本。 因此,我已經手動將這三個軟件包下載為.zip和.tar.gz文件,並將它們上傳到我的ADL帳戶中。 例:
../usqlext/samples/R/dplyr_0.7.7.zip
U-SQL是這樣開始的:
REFERENCE ASSEMBLY [ExtR]; //enable R extensions for the U-SQL Script
DEPLOY RESOURCE @"/usqlext/samples/R/dplyr_0.7.7.zip";
DEPLOY RESOURCE @"/usqlext/samples/R/reshape2_1.4.3.zip";
DEPLOY RESOURCE @"/usqlext/samples/R/tidyr_0.8.1.zip";
R腳本開始如下:
// declare the R script as a string variable and pass it as a parameter to the Reducer:
DECLARE @myRScript = @"
install.packages('dplyr_0.7.7.zip', repos = NULL) # installing package
unzip('dplyr_0.7.7.zip')
require(dplyr)
install.packages('tidyr_0.8.1.zip', repos = NULL) # installing package
unzip('tidyr_0.8.1.zip')
require(tidyr)
install.packages('reshape2_1.4.3.zip', repos = NULL) # installing package
unzip('reshape2_1.4.3.zip')
require(reshape2)
但是,我不斷收到錯誤消息,向我表明這些軟件包仍未成功安裝。 目前,我收到以下錯誤消息:
Unhandled exception from user code: "Error in function_list[[i]](value) : could not find function "group_by"
該錯誤來自以下R代碼:
longStandardized <- dataset %>%
group_by(InstallationId) %>%
mutate(stdConsumption = znorm(tmp)) %>%
select(InstallationId, Hournumber, stdConsumption)
希望有人能看到我所缺少的。
謝謝喬恩
最簡單的方法是將其下載到datalake目錄下的文件中: usqlext\\assembly\\R\\MRS.9.1.0.zip
他們將文件解壓縮(在未安裝R的計算機上)並在bin文件夾上執行R.exe。
現在您可以安裝所需的所有軟件包(參數dependencies = true)
install.packages('yourpackage', dependencies = TRUE)
再次壓縮文件夾,並用您創建的文件夾替換datalake上的文件。
再次執行RegisterAllAssemblies.USQL
,您的包將可用!
library('yourpackage')
如果找不到包錯誤,則需要以下技巧:
libpath = .libPaths()[1]
install.packages('yourpackage', lib = libpath)
“豪爾赫·里貝羅”的答案非常有效。 但是有可能,即使按照以下步驟操作,您最終也可能會遇到-的錯誤。
Unhandled exception from user code: "Specified directory not found:
'D:\5827d493\bin\x64'". The details includes more information
including any inner exceptions and the stack trace where the exception
was raised.
在這種情況下,以下步驟將解決此問題。 --
/usqlext/assembly/R/MRS.9.1.0.zip
從Azure Datalake到本地計算機。
libpath =“提取文件下的庫文件夾路徑(即解壓縮的庫文件夾名稱)
install.packages('yourpackage',依賴關系= TRUE,lib = libpath)
(control + A)
,然后再次將它們壓縮在同一位置/文件夾中。 注意:始終選擇全部並將其壓縮回同一文件夾並重命名壓縮文件(如果需要,如RegsiterAll Assembly文件中提到的名稱所示),否則,您總是會遇到上面提到的錯誤。
RegisterAllAssemblies.USQL
,然后可以使用您的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.