Mahout 中存在用于创建序列文件的命令 bin/mahout seqdirectory -c UTF-8-i <input address> -o <output address> 。我想将此命令用作代码 API。

最佳答案

你可以这样做:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.Text;


Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);

Path outputPath = new Path("c:\\temp");

Text key = new Text(); // Example, this can be another type of class
Text value = new Text(); // Example, this can be another type of class

SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf, outputPath, key.getClass(), value.getClass());

while(condition) {

    key = Some text;
    value = Some text;

    writer.append(key, value);
}

writer.close();

您可以在 herehere 中找到更多信息

此外,您可以使用 org.apache.mahout.text.SequenceFilesFromDirectory 调用从 Mahout 中描述的完全相同的功能

然后调用看起来像这样:
ToolRunner.run(new SequenceFilesFromDirectory(), String[] args //your parameters);
ToolRunner 来自 org.apache.hadoop.util.ToolRunner
希望这有帮助。

关于hadoop - 如何使用 Mahout 的序列文件 API 代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11645294/

10-13 04:13