想要将一些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