天天看點

MapReduce 基礎模型|學習筆記

開發者學堂課程【Java 進階程式設計:MapReduce 基礎模型】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/20/detail/427

MapReduce 基礎模型

内容簡介:

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));

MapReduce 基礎模型|學習筆記

分析購買商品之中帶有“強”的資訊資料,先對其進行過濾操作,對商品單價和數量進行處理,分析彙總

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());

MapReduce 基礎模型|學習筆記

運作結果為:

購買數量: 4

購買總價: 74446.4

平均花費: 18611.6

最高花費: 71903.2

最低花費: 99.0

以上這就是MapReduce的基礎操作流程

這些分析操作隻是 JDK 本身提供的支援,而實際當中,由于面對的是大資料環境,這種操作又将所有資料都儲存在記憶體裡面,由于資料非常大故而是不能實作的,是以這隻是提出的一個基礎模型而已。