我正在将数据加载到RandomAccessSparseVector
Mahout 0.7 中,但我不知道如何对其进行序列化。如果我使用 aVectorWritable
我可以这样使用SequenceFile.Writer
:
writer = new SequenceFile.Writer(
fs, conf, new Path("filename"), LongWritable.class,
VectorWritable.class);
不幸的是,没有RandomAccessSparseVectorWritable
。
一种选择是完全忘记稀疏向量并将数据加载到 a 中VectorWritable
并对其进行序列化。我想避免这种情况,因为手动输入大量零到 a 中VectorWritable
然后在序列化时占用磁盘上的一堆空间是草率的。RandomAccessSparseVector
也不能转换为VectorWritable
.
如果它有任何用处,我已经设置
Configuration conf = new Configuration();
conf.set("io.serializations",
"org.apache.hadoop.io.serializer.WritableSerialization");
以便 Hadoop 知道如何序列化。