java - 在 hadoop 中使用 Reducer 类

标签 java hadoop mapreduce reduce

<分区>

我正在构建一个 map reduce 作业。

问题是比较工作不正常。

如何比较这些字符串?

public void reduce(Text key, Iterable<Text> values,
        Context context) throws IOException, InterruptedException {

    int numItems1 = 0;

    for (Text val1 : values) {
        if(val1.toString()  == "view")   /// if not working
        {
            numItems1 = numItems1+1;
            numItems2 = 0;
            numItems3 = 0;
            result1.set( numItems1 );
            // val1.set(   result1 + "," + numItems2 + "," +   numItems3  );
        }
    }

    val1.set(result1 + ",");
    context.write(key,val1);
}

最佳答案

正如copeg所说,它不依赖Hadoop,也不依赖Reducer。问题来自您的字符串比较。在 Java 中,你应该使用

val1.toString().equals("view")

关于java - 在 hadoop 中使用 Reducer 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30582695/

相关文章:

java - 如何在表单中实现多个图像和新的日期实例

hadoop - 我正在运行我的第一个MapReduce程序,输出文件似乎存在一些权限问题

sql - 单个配置单元查询以删除数据中的某些文本

java - 从多个字符生成排列

java - HttpClientErrorException : 401 Unauthorized basic authentication

java - 使用 Java-Hadoop 连接器更新 MongoDB 中的现有集合

hadoop - 将不同 S3 文件夹中的文件作为输入传递给 mapreduce

java - 在MapReduce中解析XML文件

java - 具有 Long、Int 或 String 等类型的 WeakHashMap

hadoop - 递归查找 HDFS 文件夹中的最大文件或子目录