Hadoop 将键值数据集表示为Mahout向量

Hadoop 将键值数据集表示为Mahout向量,hadoop,mahout,Hadoop,Mahout,我有一个CSV中的数据集,它是一组键值对,数据集很大,值是整数和短字符串的混合体(即不是长文本,而是关键字),我想使用Mahout的聚类算法处理它 问题在于将此CSV转换为可由Mahout使用的向量。我一直在阅读“Mahout In Action”,似乎有两种矢量化选项,使用数值与Mahout的DenseVector、RandomAccessSparseVector和SequentialAccessSparseVector实现一起使用,或者使用向量空间模型对文本文档进行矢量化 我想将其矢量化的数

我有一个CSV中的数据集,它是一组键值对,数据集很大,值是整数和短字符串的混合体(即不是长文本,而是关键字),我想使用Mahout的聚类算法处理它

问题在于将此CSV转换为可由Mahout使用的向量。我一直在阅读“Mahout In Action”,似乎有两种矢量化选项,使用数值与Mahout的DenseVector、RandomAccessSparseVector和SequentialAccessSparseVector实现一起使用,或者使用向量空间模型对文本文档进行矢量化

我想将其矢量化的数据实际上不是一个文本文档,但由于它是一个包含许多不同键和值的庞大数据集,因此很难将其映射为数值。将此类数据矢量化以用于Mahout的最佳方式是什么

任何指点都将不胜感激


谢谢

您很可能需要RandomAccessSparseVector

  • 不是DenseVector,因为大多数可能的键都不会被表示。你有 整数和字符串作为键的混合,因此它是一个很大的键空间
  • 不是SequentialAccessSparseVector,因为似乎没有 键空间中的自然顺序会产生特定的顺序 在Mahout中运行算法时更有效的访问
您可以很容易地尝试不同的矢量表示法,以查看哪种表示法具有最佳性能