Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure:在Java互操作中使用Spark工厂方法_Java_Clojure_Apache Spark - Fatal编程技术网

Clojure:在Java互操作中使用Spark工厂方法

Clojure:在Java互操作中使用Spark工厂方法,java,clojure,apache-spark,Java,Clojure,Apache Spark,我认为这是一个Java互操作问题,但可能是Spark的细微差别(或者未能从Scala导入某些东西?)。我正试着效仿这个例子。它包括以下代码: import org.apache.spark.mllib.linalg.Vector; import org.apache.spark.mllib.linalg.Vectors; Vector dv = Vectors.dense(1.0, 0.0, 3.0); 我的第一个想法是: (import '[org.apache.spark.mllib.li

我认为这是一个Java互操作问题,但可能是Spark的细微差别(或者未能从Scala导入某些东西?)。我正试着效仿这个例子。它包括以下代码:

import org.apache.spark.mllib.linalg.Vector;
import org.apache.spark.mllib.linalg.Vectors;
Vector dv = Vectors.dense(1.0, 0.0, 3.0);
我的第一个想法是:

(import '[org.apache.spark.mllib.linalg Vector Vectors])
(Vectors/dense 1.0 0.0 3.0)
但我得到:

CompilerException java.lang.IllegalArgumentException: No matching method: dense, compiling:(/tmp/form-init6598386874684927469.clj:1:1)
我试过:

(.dense (Vectors. 1.0 0.0 3.0))
得到:

CompilerException java.lang.IllegalArgumentException: No matching ctor found for class org.apache.spark.mllib.linalg.Vectors, compiling:(/tmp/form-init6598386874684927469.clj:1:9)

我尝试了各种附加组合(向量、Java数组、
宏等),但无法使其工作。特别是,即使文档显示了一个不带参数的构造函数(请参阅),但与
(Vectors.)类似的任何东西似乎都不起作用(一个
无匹配ctor
)错误。谢谢。

您是否尝试过
(向量/密集(双数组[1.0.0.0 3.0])
?我自己没有测试这个,但它应该与中的
向量密集(double[]值)
方法相匹配

成功了—谢谢我没有意识到数组的类型是由其内容之外的任何东西定义的。我没有意识到双数组函数的存在。但是
into-array
vs
double-array
的结果有不同的类型:
[D
[Ljava.lang.double