摘要:
Scala的集合体系结构 scala中的集合体系主要包括:Iterable、Seq、Set、Map。 其中Iterable是所有集合trait的跟trai,这个结构与java的集合体系非常相似 scala中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而不可变集合的 阅读全文
摘要:
将函数赋值给变量 语法: 函数名 _ scala中的函数可以独立定义,独立存在,而且可以直接将函数作为赋值给变量 匿名函数 scala中,函数也可以不需要命名,此时函数被称为匿名函数 可以直接定义函数之后,将函数赋值给某个变量;也可以将直接定义的匿名函数传入其他函数之中。 scala定义匿名函数的语 阅读全文
摘要:
trait基础知识 将trait作为接口使用 在scala中的Trait是一种特殊的概念 首先我们可以将Trait作为接口来使用, 此时的Trait就与java中的接口非常类似 在triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可 类可以使用定义抽象方法, 就与抽 阅读全文
摘要:
·scala中子类继承父类,与java一样,也是使用extends关键字 继承就代表,子类可以从父类继承父类的filed和method;然后子类可以在自己内部放入父类所没有,子类特有的filed和method; 使用继承可以有效复用代码 子类可以覆盖父类的filed和method;但是如果父类用fi 阅读全文
摘要:
object 在scala中没有静态方法和静态字段,所以在scala中可以用object来实现这些功能,直接用对象名调用的方法都是采用这种实现方式。 第一次调用object的方法时, 就会执行object的constructor,也就是object内部不在method中的代码,如果一个对象从未被使用 阅读全文
摘要:
定义类 创建类对象, 并调用其方法 Getter与setter 使用 定义不带private的var field,此时scala生成的面向JVM的类时, 会定义为private的name,并提供public的Getter和setter方法、(也就是说,在scala中不论你定义不定义private v 阅读全文
摘要:
注意:默认的Map中的元素是无序的,也就是不会按照你插入数据的顺序进行排序,是无序的 1.创建一个不可变的Map 方式一: 语法: Map( key -> value , key2 -> value2) 方式二 语法: Map((key1 , value1) , (value2, value2) ) 阅读全文
摘要:
1.Array 在scala中,Array代表的含义与java中类似,也是长度不可改变的数组。此外,由于scala与java都是运行在JVM中,双方可以相互调用,因此Scala数组的底层实际上是Java数组。例如字符串数组在底层就是Java的String[] ,整数数组在底层就是Java的Int[] 阅读全文
摘要:
1.定义函数:需要定义函数的函数名、参数、函数体 函数语法: def 函数名(参数名:参数类型 , 参数名:参数类型) = {函数体} scala要求必须给出所有参数的类型,但是不一定给出函数返回值的类型,只要右侧的函数体中不包含递归的语句,scala就可以自己根据右侧的表达式推断出返回类型。 2. 阅读全文
摘要:
scala与java的关系 scala是基于java虚拟机,也就是JVM的一门编程语言,所有scala代码,都需要经过编译为字节码,然后交由java虚拟机来运行。 所以scala和java是可以无缝互操作的。scala可以任意调用java代码,所以scala与java的关系是非常紧密的。 val 是 阅读全文
摘要:
程序虽然报错提示如下 程序虽然现实报错内容,但是没有指定到具体代码位置, 查看hive结果表,结果表正常插入hive表中。 虽然不影响结果运行,但是看到日志报错内容,决定解决一下。 在脚本中加入一下参数配置,默认spark2.2 是true。 --conf spark.sql.codegen.who 阅读全文
摘要:
测试程序:原来运行环境是 升级后的运行环境 执行在低版本环境的程序 1.首先将高版本的pom文件修改、 2.在将resource配置文件配置 然后执行程序 报错 首先追踪错误代码行APP 45行。 是sparkSQL读hive仓库的表 最后一个报错代码说: 无法识别的hadoop主版本号 然后就在考 阅读全文