想要將一些R代碼轉換爲Sparklyr,函數如lmtest :: coeftest()和sandwich :: sandwich()。想上手Sparklyr擴展,但漂亮的新星火API和有問題:(Matrix Math With Sparklyr
運行星火2.1.1和sparklyr 0.5.5-9002
感受第一步將是使一個DenseMatrix對象使用linalg庫:
library(sparklyr)
library(dplyr)
sc <- spark_connect("local")
rows <- as.integer(2)
cols <- as.integer(2)
array <- c(1,2,3,4)
mat <- invoke_new(sc, "org.apache.spark.mllib.linalg.DenseMatrix",
rows, cols, array)
這將導致錯誤:
Error: java.lang.Exception: No matched constructor found for class org.apache.spark.mllib.linalg.DenseMatrix
好了,所以我有一個Java郎例外,我敢肯定牛逼他rows
和cols
args在構造函數中沒有問題,但不知道最後一個,它應該是java Array
。於是,我的幾個排列:
array <- invoke_new(sc, "java.util.Arrays", c(1,2,3,4))
但類似的錯誤消息結束了......
Error: java.lang.Exception: No matched constructor found for class java.util.Arrays
我覺得我失去了一些東西基本相當。任何人都知道發生了什麼?在Java Array
的
關於您的筆記,您是否知道用於製作這些擴展名的任何資源?還有任何指南顯示如何從R調用自定義擴展? – Zafar
對不起,我不是。當然[官方閃電指南](http://spark.rstudio.com/extensions.html),但我認爲它不是那麼有用。總的來說,我認爲這更多關於API設計。 SparkR API就是一個很好的例子 - 在Scala中實現了大量的邏輯,並且使用R,R適配器。 – zero323
我非常感謝您的意見。看起來我們會做一些Scala編程。我知道我們需要'rank'線性代數方法,'linalg'沒有它。 – Zafar