我如何使用Mahout中的sequencefile API代码?(How can I use Mah

2019-06-26 12:53发布

在亨利马乌存在用于创建序列文件作为命令bin/mahout seqdirectory -c UTF-8 -i <input address> -o <output address> 。 我想用这个命令代码API。

Answer 1:

你可以这样做:

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();

你可以找到更多的信息在这里和这里

此外,你可以使用你打电话从亨利马乌描述的完全相同的功能org.apache.mahout.text.SequenceFilesFromDirectory

然后调用看起来是这样的:

ToolRunner.run(new SequenceFilesFromDirectory(), String[] args //your parameters);

ToolRunner来自org.apache.hadoop.util.ToolRunner

希望这是帮助。



文章来源: How can I use Mahout's sequencefile API code?