Java 如何在Hadoop mapreduce编程中使用if/else条件?

Java 如何在Hadoop mapreduce编程中使用if/else条件?,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我是Hadoop新手,正在编写mapreduce代码,在mapper类中,我以以下方式使用一个if条件:- public class FilmDataMapperClass extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private Text word = new Text(); public void map(LongWritable key, Te

我是Hadoop新手,正在编写mapreduce代码,在mapper类中,我以以下方式使用一个if条件:-

public class FilmDataMapperClass extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable>
{
    private Text word = new Text();
    public void map(LongWritable key, Text values,
            OutputCollector<Text, IntWritable> output, Reporter reporter)
            throws IOException
            {
                String line = values.toString();
                String [] data = line.split(",");
                word.set(data[3]);
                float rating = Float.valueOf(data[3]);
                if(rating > 3.0)
                {
                    output.collect(word, new IntWritable(1));
                }
            }
}
公共类FilmDataMapperClass扩展MapReduceBase实现Mapper
{
私有文本字=新文本();
公共无效映射(可长写键、文本值、,
OutputCollector输出,报告器(报告器)
抛出IOException
{
String line=values.toString();
String[]data=line.split(“,”);
word.set(数据[3]);
浮动额定值=浮动值(数据[3]);
如果(额定值>3.0)
{
collect(word,新的intwriteable(1));
}
}
}
当我在没有任何if条件的情况下使用上述代码时,我会得到输出,但如果有if条件,我不会得到任何输出


请告诉我如何实现上述操作以获得所需的输出。

使用直接条件运算符的浮点值可能不准确。检查[这个类似的]问题。你可以使用
Float.compare(f1,f2)用于比较两个浮点值。如果f1在数值上等于f2,则返回值0;如果f1在数值上小于f2,则值小于0;如果f1的数值大于f2,则值大于0。请共享类似问题的链接@learningloop@ChandanMishra对不起,我的错。以下是浮动。比较(f1,f2)
在Rockstar也不起作用