我正在使用MLeap在java程序中运行Pyspark logistic回归模型。一旦我运行了管道,我就能够获得一个只有一行Stream(Row(1.3,12,3.6,DenseTensor([D@538613b3,List(2)),1.0), ?)的DefaultLeapFrame对象。
但我不确定如何实际检查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);谢谢
发布于 2020-06-06 23:37:30
因此,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));https://stackoverflow.com/questions/62221729
复制相似问题