Apache Mahout数据库到序列文件

时间:2013-09-05 09:01:01

标签: hadoop classification mahout

我目前正在尝试使用mahout。我购买了Mahout in Action一书。 整个过程是理解的,通过简单的测试数据集,我已经成功了。

现在我有一个我想解决的分类问题。

找到了目标变量,我现在称之为 - x。 我们数据库中的现有数据已经​​被分类为-1,0和+1。

我们定义了几个使用SQL查询选择的预测变量。

这些是产品的属性:语言,国家,商店类别,标题,描述。

现在我希望它们直接写在SequenceFile中,我为此编写了一个小助手类,每次处理完SQL结果集时都会附加到序列文件中:

public void appendToFile(String classification, String databaseID, String language, String country, String vertical, String title, String description) {
    int count = 0;
    Text key = new Text();
    Text value = new Text();

    key.set("/" + classification + "/" + databaseID);
    //??value.set(message);
    try {
        this.writer.append(key, value);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

如果我只有标题左右,我可以简单地将其存储在值中 - 但是如何在该特定键中存储多个值,例如country,lang等?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你不应该在seq文件中存储结构,只是转储你用空格分隔的所有文本,

它只是放置所有内容进行计算的地方,例如在使用像朴素贝叶斯这样的东西时,它不关心结构。

然后,当您进行分类时,请在数据库中查找结构。