開發者學堂課程【Java 進階程式設計:MapReduce 基礎模型】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/20/detail/427MapReduce 基礎模型
内容簡介:
1.MapRuduce 基礎模型
MapRuduce 基礎模型
在進行資料分析的處理之中有一個最重要的基礎模型:MapReduce 模型,對于這個模型一共是分為兩個部分:Map 處理部分,Reduce 分析部分,在進行資料分析之前必須要對資料進行合理的處理,而後才可以做統計分析操作。
範例:MapRuduce 基礎模型
要分析使用者的訂單,首先存入訂單資料:
購買的商品名稱 private string name;
購買的商品價格 private double price;
購買的商品數量 private int amount;
public Order(String name,double price,int amount){
this.name = name;
this.price = price;
this.amount =amount;
}
為了分析問題,在代碼中應該把所有的 get 方法都提供。
public int getAmount(){
return amount;
}
public String getName(){
return name;
}
public double getPrice(){
return price;
}
如果想使用 Stream 進行分析處理,則一定要将全部要分析的資料儲存在集合之中,如下
List<Order> all = new ArrayList<Order>();
all.add(new Order(“小強娃娃”,9.9,10));
all.add(new Order(“林弱娃娃”,2987.9,3));
all.add(new Order(“不強牌筆記本電腦”,8987.9,8));
all.add(new Order(“弱強茶杯”,2.9,800));
all.add(new Order(“阿強牌煎餅”,0.9,138));
分析購買商品之中帶有“強”的資訊資料,先對其進行過濾操作,對商品單價和數量進行處理,分析彙總
DoubleSummaryStatistics stat= all.stream().filter((ele)->ele.getName().contains(“強”)).mapToDouble((orderObject.getPrice()*orderObject,getAmount()).summaryStatistics();
System.out.println(“購買數量” + stat.getCount());
System.out.println(“購買總價” + stat.getSum());
System.out.println(“平均花費” + stat.getAverage());
System.out.println(“最高花費” + stat.getMax());
System.out.println(“最低花費” + stat.getMin());
運作結果為:
購買數量: 4
購買總價: 74446.4
平均花費: 18611.6
最高花費: 71903.2
最低花費: 99.0
以上這就是MapReduce的基礎操作流程
這些分析操作隻是 JDK 本身提供的支援,而實際當中,由于面對的是大資料環境,這種操作又将所有資料都儲存在記憶體裡面,由于資料非常大故而是不能實作的,是以這隻是提出的一個基礎模型而已。