簡體   English   中英

在Azure Data Lake Analytics中安裝R包

[英]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.

在這種情況下,以下步驟將解決此問題。 --

  1. 僅下載

    /usqlext/assembly/R/MRS.9.1.0.zip

從Azure Datalake到本地計算機。

  1. 將所有壓縮文件(MRS.9.1.0.zip)解壓縮到相同位置,然后在bin文件夾中執行R.exe。 注意:無論是否將MRS.9.1.0.zip文件下載並解壓縮到具有或不具有“ R安裝”的機器上,都沒有關系。 您可以在任何計算機上下載和解壓縮。
  2. 安裝所需的所有軟件包(參數dependencies = true和lib = libpath)。

libpath =“提取文件下的庫文件夾路徑(即解壓縮的庫文件夾名稱)

install.packages('yourpackage',依賴關系= TRUE,lib = libpath)

  1. 選擇所有文件(control + A) ,然后再次將它們壓縮在同一位置/文件夾中。

注意:始終選擇全部並將其壓縮回同一文件夾並重命名壓縮文件(如果需要,如RegsiterAll Assembly文件中提到的名稱所示),否則,您總是會遇到上面提到的錯誤。

  1. 上傳並替換您剛剛在datalake上創建的文件。
  2. 執行RegisterAllAssemblies.USQL ,然后可以使用您的庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM