特殊クラスのClassオブジェクトを取得する必要があります。例えばScala - 特殊クラスのクラスを取得
import breeze.linalg.DenseVector
val compileTimeClass = classOf[DenseVector[Double]]
println(compileTimeClass)
val denseVector = DenseVector(0.5, 1.0, 1.0, 0.5)
println(denseVector.getClass)
出力は次のとおりです。
class breeze.linalg.DenseVector
class breeze.linalg.DenseVector$mcD$sp
私はそれを正しく理解していれば、Scalaは、実行時にDenseVectorの専門のバージョンを作成していますか? Kryoとのシリアライズのためにこれらの専門クラスの1つを登録する必要があるので、これは私の問題です。
DenseVectorの特殊なインスタンスでgetClassを呼び出す以外に、特別な型のClassオブジェクトを取得する方法はありませんか?
'DenseVector'を修正できますか? – talex
DenseVectorは、Spark MLで使用されるBreezeライブラリにあります。私はそれもmyslefを構築していない、ML APIは私のためにそれを行います。 –
さて、 'DenseVector'に' kryo'を登録するだけでいいと思います。 'A 'が' kryo'にも登録されている限り、 'DenseVector [A]'を扱うことができるはずです。 –