使用stream实现MapReduce简单数据分析

MapReduce是一种分布式计算模型,最初由Google提出,主要用于搜索领域,解决海量数据的计算问题,在MapReduce模型中一共分为两个部分:map(数据处理)和reduce(统计计算),在Stream中就可以利用MapReduce队集合中的数据进行分析;

一个简单对象:

public class Order {
    private String name;
    private double price;
    private int num;

    public Order(String name, double price, int num) {
        this.name = name;
        this.price = price;
        this.num = num;
    }

Set,Get....
package com.cn;

import java.util.ArrayList;
import java.util.DoubleSummaryStatistics;
import java.util.List;

/**
 * @Authro: QYF
 * @Time:2020/9/20 23:26
 */
public class MapReduce {
    public static void main(String[] args) {
        //用一个集合添加数据
        List<Order> list = new ArrayList<>();
        list.add(new Order("薯片A",8.8,15));
        list.add(new Order("饼干A",18.5,10));
        list.add(new Order("糖果A",25.2,6));
        list.add(new Order("牛奶B",45.8,28));
        list.add(new Order("面包A",5.5,22));
        list.add(new Order("可乐B",3.5,8));
        //分析名字中带有A的数据信息
        DoubleSummaryStatistics filter = list.stream().filter((a) -> a.getName().contains("A"))
                //获取统计对象,进行商品单价和数量的处理,
                .mapToDouble((b) -> b.getPrice() * b.getNum()).summaryStatistics();

        System.out.println("销售数量:"+filter.getCount());
        System.out.println("总销售额:"+filter.getSum());
        System.out.println("平均销售额:"+filter.getAverage());
        System.out.println("最高销售额:"+filter.getMax());
        System.out.println("最低销售额:"+filter.getMin());
    }
}

输出:

销售数量:4
总销售额:589.2
平均销售额:147.3
最高销售额:185.0
最低销售额:121.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值