Tìm cách chuyển đổi một số mã R thành Sparklyr, các hàm như lmtest :: coeftest() và sandwich :: sandwich(). Cố gắng để bắt đầu với phần mở rộng Sparklyr nhưng khá mới với API Spark và có vấn đề :(Matrix Math Với Sparklyr
Chạy Spark 2.1.1 và sparklyr 0.5.5-9002
Cảm nhận bước đầu tiên sẽ là để tạo ra một đối tượng DenseMatrix sử dụng thư viện 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)
Điều này dẫn đến các lỗi:
Error: java.lang.Exception: No matched constructor found for class org.apache.spark.mllib.linalg.DenseMatrix
Được rồi, vì vậy tôi có một java lang ngoại lệ, tôi khá chắc chắn t ông rows
và cols
args là tốt trong các nhà xây dựng, nhưng không chắc chắn về người cuối cùng, được cho là một java Array
. Vì vậy, tôi đã thử một vài hoán vị của:
array <- invoke_new(sc, "java.util.Arrays", c(1,2,3,4))
nhưng kết thúc với một thông báo lỗi tương tự ...
Error: java.lang.Exception: No matched constructor found for class java.util.Arrays
tôi cảm thấy như tôi là thiếu một cái gì đó khá cơ bản. Có ai biết chuyện gì không?
liên quan đến ghi chú của bạn, bạn có biết bất kỳ tài nguyên nào để thực hiện các tiện ích này không? Ngoài ra, bất kỳ hướng dẫn nào cho biết cách gọi các tiện ích mở rộng tùy chỉnh từ R? – Zafar
Xin lỗi, tôi không. Tất nhiên là có [hướng dẫn sparklyr chính thức] (http://spark.rstudio.com/extensions.html), nhưng tôi không nghĩ nó hữu ích. Nói chung tôi nghĩ điều này nhiều hơn về thiết kế API. SparkR API là một ví dụ hay - với logic nặng được triển khai trong Scala và các bộ điều hợp R-friendly thân thiện. – zero323
Tôi rất cảm kích nhận xét của bạn. Có vẻ như chúng tôi sẽ làm một số chương trình Scala. Tôi biết rằng chúng ta sẽ cần phương thức đại số tuyến tính 'rank' và' linalg' không có nó. – Zafar