Mahout 0.7のにデータをロードしてRandomAccessSparseVector
いますが、シリアル化する方法がわかりません。私が使用していた場合、私はそのVectorWritable
ように使用することができますSequenceFile.Writer
:
writer = new SequenceFile.Writer(
fs, conf, new Path("filename"), LongWritable.class,
VectorWritable.class);
RandomAccessSparseVectorWritable
残念ながら、ありません。
1つのオプションは、スパースベクトルを完全に忘れて、データをにロードしてVectorWritable
シリアル化することです。VectorWritable
手動でゼロの負荷をに入力し、シリアル化するときにディスク上の多くのスペースを占有するのは面倒なので、これを避けたいと思います。RandomAccessSparseVector
また、にキャストすることはできませんVectorWritable
。
それが役に立ったら、私は設定しました
Configuration conf = new Configuration();
conf.set("io.serializations",
"org.apache.hadoop.io.serializer.WritableSerialization");
Hadoopがシリアル化する方法を知っているようにします。