m0_58332232 2022-12-08 01:17 采纳率: 40%
浏览 97
已结题

mapreduce下的求和(运行成功,必采纳)急急急

问题:求震级>6的地震总数
要求:map reduce job分开写

img


以上部分数据代表时刻,震级,经度,纬度,深度,地区。

  • 写回答

4条回答 默认 最新

  • ShowMeAI 2022-12-08 10:39
    关注

    针对你的地震数据,我写的代码解决方案如下,望采纳:

    Map阶段代码:

    import java.io.IOException;
    
    import org.apache.hadoop.io.IntWritable;
    import org.apache.hadoop.io.LongWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Mapper;
    
    public class EarthquakeMapper extends Mapper<LongWritable, Text, IntWritable, IntWritable> {
    
      private static final IntWritable ONE = new IntWritable(1);
    
      @Override
      public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        // 解析地震数据
        String[] data = value.toString().split(",");
        float magnitude = Float.parseFloat(data[1]);
        // 如果震级大于6,输出(1,1)
        if (magnitude > 6) {
          context.write(ONE, ONE);
        }
      }
    }
    

    Reduce阶段代码:

    import java.io.IOException;
    
    import org.apache.hadoop.io.IntWritable;
    import org.apache.hadoop.mapreduce.Reducer;
    
    public class EarthquakeReducer extends Reducer<IntWritable, IntWritable, IntWritable, IntWritable> {
    
      @Override
      public void reduce(IntWritable key, Iterable<IntWritable> values, Context context)
          throws IOException, InterruptedException {
        // 计数器初始化为0
        int count = 0;
        // 遍历所有(1,1)的二元组,计数器加1
        for (IntWritable value : values) {
          count += value.get();
        }
        // 输出震级大于6的地震的总数
        context.write(key, new IntWritable(count));
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图