Scala系列1:为什么大数据需要学习Scala?

2020-09-27 18:51发布

0.什么是Scala?

    Scala是运行在 JVM 上的多范式编程语言, 同时支持面向对象和面向函数编程,早期, scala刚出现的时候, 并没有怎么引起重视, 随着Spark和Kafka这样基于scala的大数据框架的兴起, scala逐步进入大数据开发者的眼帘。 scala的主要优势是它的表达性。

1.为什么使用scala?

1.开发大数据应用程序(Spark程序、 Flink程序)

2.表达能力强, 一行代码抵得上Java多行, 开发速度快

3.兼容Java, 可以访问庞大的Java类库, 例如: 操作mysql、 redis、 freemarker、 activemq等等

3.scala对比Java

下面通过两个案例, 分别使用java和scala实现的代码数量

3.1案例一

定义三个实体类(用户、 订单、 商品),Java代码如下:


  1. /**

  2. * 用户实体类

  3. */

  4. public class User {

  5. private String name;

  6. private List<Order> orders;

  7. public String getName() {

  8. return name;

  9. } p

  10. ublic void setName(String name) {

  11. this.name = name;

  12. } p

  13. ublic List<Order> getOrders() {

  14. return orders;

  15. } p

  16. ublic void setOrders(List<Order> orders) {

  17. this.orders = orders;

  18. }

  19. } /

  20. **

  21. * 订单实体类

  22. */

  23. public class Order {

  24. private int id;

  25. private List<Product> products;

  26. public int getId() {

  27. return id;

  28. } p

  29. ublic void setId(int id) {

  30. this.id = id;

  31. } p

  32. ublic List<Product> getProducts() {

  33. return products;

  34. } p

  35. ublic void setProducts(List<Product> products) {

  36. 4this.products = products;

  37. }

  38. } /

  39. **

  40. * 商品实体类

  41. */

  42. public class Product {

  43. private int id;

  44. private String category;

  45. public int getId() {

  46. return id;

  47. } p

  48. ublic void setId(int id) {

  49. this.id = id;

  50. } p

  51. ublic String getCategory() {

  52. return category;

  53. } p

  54. ublic void setCategory(String category) {

  55. this.category = category;

  56. }

  57. }

scala代码如下:


  1. case class User(var name:String, var orders:List[Order]) // 用户实体类

  2. case class Order(var id:Int, var products:List[Product]) // 订单实体类

  3. case class Product(var id:Int, var category:String) // 商品实体类

3.2 案例2

有一个字符串(数字) 列表, 我们想将该列表中所有的字符串转换为整数。


  1. Java代码如下:

  2. // 创建一个Integer类型的列表

  3. List<Integer> ints = new ArrayList<Integer>();

  4. for (String s : list) {

  5. ints.add(Integer.parseInt(s));

  6. }

  7. scala代码

  8. val ints = list.map(s => s.toInt)

3.3 Java 和Scala底层执行原理

尖叫提示:scala程序运行需要依赖于Java类库,必须要有Java运行环境,scala才能正确执行。根据上述流程图,要编译运行scala程序,需要

1.jdk(jvm)

2.scala编译器(scalaSDK)


作者:涤生手记

链接:https://blog.csdn.net/qq_26442553/article/details/108299382

来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。