大數據中爲什麼使用scala?

原因:

  • 開發大數據應用程序 (Spark程序、Flink程序 )

Hadoop已經是我們大數據領域的事實標準了。Spark生態並不是要取代Hadoop生態,而是爲了更好的拓展大數據生態,兩者結合。而Spark由我們Scala開發的,我們學習Scala爲了更好的去學習Spark。

  • 表達能力強,一行代碼抵得上Java多行,開發速度快。 優雅,代碼簡介邏輯更加清晰。

  • 兼容Java,可以訪問龐大的Java類庫,例如:操作mysql、redis、freemarker、activemq等等

 案例對比:

假設定義三個實體類(用戶、訂單、商品)

java代碼實現:

用戶實體類:

/**
 * 用戶實體類
 */
public class User {
    private String name;
    private List<Order> orders;

    public String getName() {
    	return name;
    }

    public void setName(String name) {
    	this.name = name;
    }

    public List<Order> getOrders() {
    	return orders;
    }

    public void setOrders(List<Order> orders) {
    	this.orders = orders;
    }
}

 訂單實體類:

/**
 * 訂單實體類
 */
public class Order {
    private int id;
    private List<Product> products;

    public int getId() {
    	return id;
    }

    public void setId(int id) {
    	this.id = id;
    }

    public List<Product> getProducts() {
    	return products;
    }

    public void setProducts(List<Product> products) {
    	this.products = products;
    }
}

商品實體類:

/**
 * 商品實體類
 */
public class Product {
    private int id;
    private String category;

    public int getId() {
    	return id;
    }

    public void setId(int id) {
    	this.id = id;
    }

    public String getCategory() {
    	return category;
    }

    public void setCategory(String category) {
    	this.category = category;
    }
}

 

Scala代碼:

case class User(var name:String, var orders:List[Order])	// 用戶實體類
case class Order(var id:Int, var products:List[Product])	// 訂單實體類
case class Product(var id:Int, var category:String)  		// 商品實體類

總結

    看到這裏是不是已經對scala愛不釋手了,在接下來的幾天,我會把系統的把scala的基礎用法介紹一下。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章