Map和Tuple是Scala中还是Spark中是使用最频繁、最常用的数据集合:
Map特点:
1、默认情况下通过Map构建的集合是不可变的,里面的数据不可修改,一旦修改则会产生新的Map,而原有的Map保持不变,这是和Java中Map一个很大的区别
2、Map的实例是通过调用工厂模式apply方法来构建的, 而需要注意的是Map是接口,在apply中使用了具体的实现类,及如果想实例化Map对象需要使用HashMap等具体的子类
3、查询一个Map中的数据一定是采用getOrElse的语法的,一方面是保证key不存在时不报异常,另一方面神奇的作用就是使用默认值(而关于默认值在实际开发中非常重要,在Spark中很多默认配置都是通过getOrElse来实现的)
4、LinkedHashMap可以记住插入数据的顺序(这在实际开发中非常重要)
Tuple特点
1、Tuple中可以有很多不同类型的数据,例如:(“zhouqt”,“123”,555,“welcome to beijing”)
2、Tuple另外一个非常重要的作用就是可以作为函数的返回值,在Tuple中可以返回若干个值,以SparkContext源码为例:
注:
在企业级开发大数据中,一定反复使用Tuple来表达数据结构,以及使用Tuple来处理业务逻辑