Java 使用浮动可写时映射程序不生成记录

Java 使用浮动可写时映射程序不生成记录,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我正在尝试编写一个简单的映射程序,它读取一个csv文件,并将一列作为键,另一列作为值,丢弃所有其他内容。两列都有数字数据。当我将键和值都视为文本时,映射器就会工作。但是,当我尝试将值作为float返回时,它不会返回任何行 以下是我的代码(注释代码,将值视为文本并工作): 公共静态类筛选映射器 扩展映射器{ 私有文本keyText=新文本(); //私有文本valText=新文本(); 公共无效映射(对象键、文本值、上下文 )抛出IOException、InterruptedException{

我正在尝试编写一个简单的映射程序,它读取一个csv文件,并将一列作为键,另一列作为值,丢弃所有其他内容。两列都有数字数据。当我将键和值都视为文本时,映射器就会工作。但是,当我尝试将值作为float返回时,它不会返回任何行

以下是我的代码(注释代码,将值视为文本并工作):

公共静态类筛选映射器
扩展映射器{
私有文本keyText=新文本();
//私有文本valText=新文本();
公共无效映射(对象键、文本值、上下文
)抛出IOException、InterruptedException{
字符串行=value.toString();
String[]parts=line.split(“,”);
尝试
{
int pickupLocationId=Integer.parseInt(部分[0].trim());
float fare=float.parseFloat(parts[3].trim());
如果(pickupLocationId>=0&&distance>0&&fare>0)
{
字符串keyStr=Integer.toString(pickupLocationId);
keyText.set(keyStr);
//私有文本valText=新文本();
//字符串VALTR=Float.toString(票价);
//valText.set(valStr);
浮动可写f=新的浮动可写(票价);
上下文。编写(关键字文本,f);
}
}
捕获(例外e)
{
}
}
}

顺便说一下,这可能是Spark或Pig中的3行代码。。。当您实际在catch块中放置一些日志时会发生什么?您进行了哪些调试?请尝试将
e.printStackTrace
放入异常块。它可能会告诉我们一些事情。
public static class FiltrationMapper
       extends Mapper<Object, Text, Text, FloatWritable>{


    private Text keyText = new  Text();
    //private Text valText = new  Text();   

    public void map(Object key, Text value, Context context
                    ) throws IOException, InterruptedException {


        String line = value.toString();   
        String[] parts = line.split(",");

        try
        {
            int pickupLocationId = Integer.parseInt(parts[0].trim());            
            float fare = Float.parseFloat(parts[3].trim());            

            if(pickupLocationId >= 0 && distance > 0 && fare > 0)
            {
                String keyStr = Integer.toString(pickupLocationId);
                keyText.set(keyStr);

                //private Text valText = new  Text();   
                //String valStr = Float.toString(fare);
                //valText.set(valStr);
                FloatWritable f = new FloatWritable(fare);


                context.write(keyText, f);

            }
        }
        catch(Exception e)
        {
        }

    }
  }