如何在 Java 中使用 MLeap DenseTensor

How to use MLeap DenseTensor in Java

我在 java 程序中使用 MLeap 运行 Pyspark 逻辑回归模型。一旦我 运行 管道,我就能得到一个 DefaultLeapFrame 一行 Stream(Row(1.3,12,3.6,DenseTensor([D@538613b3,List(2)),1.0), ?) 的对象。

但我不确定如何实际检查 DenseTensor 对象。当我在这一行使用 getTensor(3) 时,我得到一个对象。我不熟悉 Scala,但这似乎是与之交互的方式。在 Java 中,如何获取此 DenseVector 中的值?

这就是我正在做的事情。我猜使用 Object 不适合这种类型。 . .

DefaultLeapFrame df = leapFrameSupport.select(frame2, Arrays.asList("feat1", "feat2", "feat3", "probability", "prediction"));
Tensor<Object> tensor = df.dataset().head().getTensor(3);

谢谢

所以 Java DSL 的 MLeap 文档不是很好,但我能够查看一些单元测试 (link),它们为我指出了正确的使用方法。如果其他人有兴趣,这就是我所做的。

DefaultLeapFrame df = leapFrameSupport.select(frame, Arrays.asList("feat1", "feat2", "feat3", "probability", "prediction"));
TensorSupport tensorSupport = new TensorSupport();
List<Double> tensor_vals = tensorSupport.toArray(df.dataset().head().getTensor(3));