gpt4 book ai didi

hadoop - Mahout 转置矩阵

转载 作者:行者123 更新时间:2023-12-02 21:49:41 26 4
gpt4 key购买 nike

我是 Mahout 的新手。
我正在尝试使用 Mahout 转置命令行转置矩阵。

我的数据源文件中的每一行都是这样的: 1;456;789;012;.... . 键是每一行中的第一个元素(在这个例子中是“1”)。每条线都是矩阵的一个向量。

我尝试用“,”或空格“”更改分隔符,但我不工作。

为了转置矩阵,我首先使用以下命令将 hdfs 数据文件转换为序列文件:

mahout seqdirectory -c utf-8 -i /test/myfile -p /test/myfile_seq

然后我尝试使用以下命令将我的序列文件转换为向量:
mahout seq2sparse -i /test/myfile_seq/chunk-0 -o /test/myfile_vector

然后转置我使用了这个命令:
sudo -u hdfs mahout transpose --input  /test/myfile_vector//tfidf-vectors/part-r-00000 --numRows 5 --numCols 24

我有几个问题:

- What is the separator to use in the data file source
- What should be the output of the "mahout seqdirectory" command?
- Did I need to convert my sequence file to vectors to transpose?

最佳答案

请将 Mahout 相关问题发布到 Mahout user@ 邮件列表,以便从 Mahout 提交者那里获得更快速、更明确的答案。

Mahout 的 TransposeJob 需要一个矩阵作为输入,并且不能像你所拥有的那样对单个向量起作用。
输入格式是什么并不重要。您可以拥有一个 CSV 文件并解析每一行。

以下是您尝试完成的步骤顺序:

  • 将输入的 CSV 文件转换为命名向量,其中 VectorId 将是您的情况的关键。查看 Mahout 的 CSVIterator 的代码并对其进行调整以处理命名向量并解析输入中的每一行。
  • 在 NamedVectors 上运行 Mahout 的 RowIdJob 以创建所有向量的矩阵。矩阵的每一行都是您输入的一行。 RowIDJob 的输出是 - 矩阵和 docIndex。

    matrix - 所有向量的所有连接矩阵的 m*n 矩阵
    docIndex - documentId 到 documentName 的映射(在你的情况下,它会将 documentId 映射到你的键)
  • 将上一步的矩阵输出作为输入提供给 TransposeJob。您需要为 CLI 指定行数和列数。

  • 如果您还有其他问题,请发帖到 Mahout 用户@。

    关于hadoop - Mahout 转置矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22175781/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com