Я уже некоторое время экспериментирую с R в Azure Data Lake Analytics, и я застреваю при установке дополнительных R-пакетов, таких как dlplyr и tidyr. Я задал следующий вопрос, но это не решило проблему: Установка R-пакетов в Azure Data Lake Analytics
Теперь я пытаюсь следовать этому руководству https://blog.revolutionanalytics.com/2017/10/adla-with-r.html, но получаю ошибку при выполнении третьего сценария usqlscriptEx3a.usql (https://github.com/Azure/ADLAwithR-GettingStarted/tree/master/Tutorial/Exercise3). Я использую сценарий как есть, и я отлаживаю R -код локально, и это, кажется, делает правильную вещь, так что теперь я не знаю, где искать. Ошибка:
An unhandled exception from user code has been reported when invoking the method 'Reduce' on the user type 'Extension.R.Reducer'
Unhandled exception from user code: "Output column 'Par' is missing from the data frame"
Однако Пар, кажется, там, как и должно быть.
Вот часть кода из usqlscriptEx3a.usql:
REFERENCE ASSEMBLY [ExtR];
//declare the R script as a string variable and pass it as a parameter to
the Reducer:
DECLARE @myRScript = @"
temp = inputFromUSQL
t1 = loadedNamespaces()
temp = data.frame(loadedNamespaces = t1)
t2 = data.frame(apply(temp[1],1,FUN=function(x)
{paste(unlist(packageVersion(as.character(x))),collapse='.')}) )
names(t2) = 'packageVersion'
temp$packageVersion = t2$packageVersion
t3 = sessionInfo()[1]
t3 = t3$R.version$version.string
t3 = as.character(t3)
temp$Rversion = t3
temp$Rversion[2:nrow(temp)]=''
outputToUSQL = temp
";
DECLARE @myOutputFile string = @"/TutorialMaterial/outex3a.txt";
@somedata =
SELECT * FROM
(VALUES
("Contoso", 1500.0),
("Woodgrove", 2700.0)
) AS
D( customer, amount );
@ExtendedData = SELECT
0 AS Par,
*
FROM @somedata;
@RScriptOutput = REDUCE @ExtendedData ON Par PRODUCE
Par,
loadedNamespaces string,
packageVersion string,
Rversion string
USING new Extension.R.Reducer(command:@myRScript, rReturnType:"dataframe");