![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
Angel骷髅
从事java开发 大数据分析
展开
-
一步步学spark之一scala安装使用1.1
spark之一scala安装使用原创 2016-05-22 13:55:29 · 466 阅读 · 0 评论 -
一步步学spark之一scala面向对象Trait 比较重要2.6
一步步学spark之一scala面向对象TraitTrait是scala中的接口,此接口与java中的接口不一样,scala中的Trait可以有实现的方法,也可以有抽象方法。Trait可以里面没有一个抽象方法,只有具体方法也可以作为一个Trait,此时Trait经常会被用作工具的集合混入对象中,让对象去使用。如果一个类或者对象使用Trait,它在前面没有继承其他的类或者没有使用其他的T原创 2016-05-24 15:55:05 · 1065 阅读 · 0 评论 -
一步步学spark之一scala面向对象中包的定义与使用2.7
一步步学spark之一scala面向对象中包的定义与使用如果想引入一个包中的部分类 可以使用{ , }来引入部分类只想引入一个类可以直接加上类名scala引入一个包下所有类时候与java不同 java是用*表示所有 而scala是用_来表示所有类包的定义 用package 跟java一样包中可以对类的名称进行修改 下面调原创 2016-05-24 18:03:13 · 661 阅读 · 0 评论 -
一步步学spark之一scala面向对象的文件访问2.8
一步步学spark之一scala面向对象的文件访问scala访问文件需要导入一个包 scala.io.Source读取本地文件aa.txt文件内容读取网络中文件 如果把file.getLines() 方法直接改成file 那么读取方式就不是一行一行读取 而是一个字符一个字符读取原创 2016-05-25 09:26:17 · 337 阅读 · 0 评论 -
一步步学spark之一scala函数式编程中函数的定义,值函数,匿名函数2.9
一步步学spark之一scala函数式编程中函数的定义,值函数,匿名函数scala语言的核心就是函数函数中定义函数,函数可以被赋值,赋值的时候必须在后面空格 加上一个_ 值函数把函数作为值赋给一个常量 或者变量时 需要在后面加 _ 匿名函数:匿名函数书写匿名函数使用集合操作中使用匿名函数简化写法原创 2016-05-25 10:46:01 · 510 阅读 · 0 评论 -
一步步学spark之一scala函数式编程中闭包,Curry3.0
一步步学spark之一scala函数式编程中闭包,Curry闭包:闭合的一个包这样定义的话会报错 找不到y声明了一个全局变量,y捕获到了这个变量,从而使x+y的状态能够正常的变成一个函数的定义,让函数定义闭合起来叫闭包当y的值发生改变,y也能捕获到CurryCurry方式定义函数 Curry使用 _原创 2016-05-25 11:15:02 · 441 阅读 · 0 评论 -
一步步学spark之一scala函数式编程中集合 3.1
一步步学spark之一scala函数式编程中集合 3.1集合在scala数据处理中是比较重要的,数据处理从形式上分为两种,一种是单机版一种是分布式。无论是分布式处理还是单机处理在scala中都是以集合为单位。直接写一个map默认是不可变不可变的map需要导入包scala.collection.mutable.map(k,v)1 to 10是一个不原创 2016-05-25 11:43:04 · 343 阅读 · 0 评论 -
一步步学spark之一scala函数编程中序列,可变列表与不可变列表3.2
一步步学spark之一scala函数编程中序列,可变列表与不可变列表定义List集合head就是去列表中第一个元素tail就是除了第一个元素以外的其他元素列表另一种定义list方法把新的数加入到list中可变列表与不可变列表:上面定义的都是不可变的list 但是我们操作list 的时候往往是原创 2016-05-25 14:21:05 · 6617 阅读 · 0 评论 -
一步步学spark之一scala函数式编程中set无序集合3.3
一步步学spark之一scala函数式编程中set无序集合定义常量set集合去掉一个数用-再次查看 还是没有变化 因为是一个不可变的有序集合Set,使用treeSet进行排序创建可变的Set 导入包 可变的Set加一个值 用+ 用+= 就是在原有值的基础上加上,不加= 就会生成一个新的sets原创 2016-05-25 14:28:44 · 997 阅读 · 0 评论 -
一步步学spark之一scala函数式编程中case class3.4
一步步学spark之一scala函数式编程中case classcase class类与正常的class类的区别:case class定义时候一般都需要在类名之后直接加上参数,参数前面不加val或var都可以,不加 的情况下默认是 val用case class就是传递消息或传递数据 scala在内部已经帮它实现了apply方法原创 2016-05-25 17:23:44 · 1121 阅读 · 0 评论 -
一步步学spark之一scala函数式编程中模式匹配3.5
一步步学spark之一scala函数式编程中模式匹配match模式 case匹配模式匹配中没有break,return之类的语句 在模式匹配的case中一旦匹配到,整个match就立即返回 ,返回最后一条语句或者变量值原创 2016-05-26 14:17:48 · 559 阅读 · 0 评论 -
一步步学spark之一scala高级特性中泛型类与泛型函数3.6
一步步学spark之一scala高级特性中泛型类泛型类中的泛型是包容具体类型变换的,对这些具体不同的类型,泛型类根据类型进行统一的操作,很多时候泛型类就相当于模板。泛型定义一个泛型参数两个泛型参数定义空的Map 返回的类型中是Nothing map中也是泛型当k的值是String又是Int的类型时候,就会当成是An原创 2016-05-26 14:58:36 · 2236 阅读 · 0 评论 -
一步步学spark之一scala高级特性中Lower bounds(下界)与Upper bounds(上界),View bounds(视图边界)3.7
一步步学spark之一scala高级特性中Lower bounds(下界)与Upper bounds(上界)Upper bounds(上界):我们使用一个对象或者一个类必须是什么类型的,也就是说必须是什么类型或者什么类型的子类。表示语法 Lower bounds(下界):我们使用一个对象或者一个类必须是什么类型的父类,也可以是接口。Upper bounds 语法原创 2016-05-26 17:01:09 · 2213 阅读 · 0 评论 -
一步步学spark之一scala面向对象的抽象类2.5
一步步学spark之一scala面向对象的抽象类抽象类中至少有一个抽象方法。scala中与java抽象类的区别:scala在抽象类中可以指定抽象属性,java不能在抽象类中定义抽象方法不需要加上abstract抽象类中的属性没有赋值,方法没有实现 在继承抽象类需要用属性的时候可以直接赋值使用原创 2016-05-24 15:08:57 · 439 阅读 · 0 评论 -
一步步学spark之一scala面向对象的方法重写与字段重写2.4
一步步学spark之一scala面向对象的方法重写与字段重写很多时候一个类继承另一个类往往需要重写另一个类的方法或者重写字段的方法。父类和子类有同样的方法,子类要想重写父类的方法需要加上override 复写父类字段的属性加上override下面复写类中的toString方法子类复写toString原创 2016-05-24 15:07:19 · 613 阅读 · 0 评论 -
一步步学spark之一scala常用类型1.2
scala常用类型,值与变量定义原创 2016-05-22 15:15:32 · 478 阅读 · 0 评论 -
一步步学spark之一scala函数1.3
一步步学spark之一scala函数1.4 scala函数 定义函数关键字 def def warnSpark(value : String) : String ={value} def后面的warnSpark是一个函数名value 表示一个变量名称 类型是String 多个参数用,隔开 : String 表示函数定义完成之后返回的结果类型 为String原创 2016-05-22 15:48:08 · 726 阅读 · 0 评论 -
一步步学spark之一scala条件表达式1.4
一步步学spark之一scala条件表达式1.4 scala条件表达式 if else 使用 上图中可以看出 函数还是有些问题的 定义的时候尽量使用常量不用变量 进行修改 使用 val 好处 :可以提高效率 val是不可变的,节省了运行时环境审查变量的作用域的所有代码,以检查 f 是否改变。原创 2016-05-22 16:39:02 · 501 阅读 · 0 评论 -
一步步学spark之一scala循环表达式和for循环使用1.5
一步步学spark之一scala循环表达式和for循环使用1.5 scala循环表达式和for循环使用 while 使用 do while使用 上面代码中 scala.io.StdIn.readLine() 指定了readLine()方法用的是哪个包下的 for循环使用 for(i原创 2016-05-22 16:41:13 · 8457 阅读 · 0 评论 -
一步步学spark之一scala的懒加载机制(lazy)1.6
一步步学spark之一scala的懒加载机制(lazy)1.6scala的懒加载机制(lazy)如果我们声明一个变量或者常量的时候前面加上lazy 关键字,就是懒加载!懒加载就是我们在使用的时候 才会去加载,声明的时候不加载!首先定义一个常量 sum=10 回车后马上就显示出来了 但是当我们在加上lazy之后,sum还是整数Int类型,但是并没有为原创 2016-05-23 09:46:42 · 6022 阅读 · 0 评论 -
一步步学spark之一scala的异常处理1.7
一步步学spark之一scala的异常处理1.7scala的异常处理可以看出抛出了我们自定义的一个异常内容 下面是捕获异常方法关流操作与java一样原创 2016-05-23 10:17:36 · 648 阅读 · 0 评论 -
一步步学spark之一scala数组1.8
一步步学spark之一scala数组1.8 scala数组不可变长度数组 :使用可变长度的数组 必须要导入包 scala.collection.mutable.ArrayBuffer数组遍历原创 2016-05-23 10:20:57 · 294 阅读 · 0 评论 -
一步步学spark之一scala的map操作1.9
一步步学spark之一scala的map操作1.9 scala的map操作语法图中注意可变集合与不可变集合的声明 scala中map集合的遍历方法只遍历key 不遍历value 用占位符 _ 元组的取值 和数组的不一样 下标索引是从1开始 不是从0开始原创 2016-05-23 11:29:20 · 968 阅读 · 0 评论 -
一步步学spark之一scala类的定义(属性和方法)2.0
一步步学spark之一scala类的定义(属性和方法)2.0 scala类的定义(属性和方法) 定义一个类 声明属性 在类中定义一个无参方法 并在main 方法中调用私有成员定义原创 2016-05-23 13:43:47 · 989 阅读 · 0 评论 -
一步步学spark之一scala中面向对象的不同构造器使用2.1
一步步学spark之一scala中面向对象的不同构造器使用//定义构造器 后面的参数一定要加上var或者val类型类名后面定义的参数 scala会把参数 编译成个getter 和setter 如过前面声明用了val就只有getter方法 如果是用var定义的scala会生成getter和setter方法 在main方法中就直接可以调用属性主构造器特点:主构原创 2016-05-23 14:19:55 · 426 阅读 · 0 评论 -
一步步学spark之一scala面向对象之Object对象2.2
一步步学spark之一scala面向对象之Object对象 在scala中没有静态类静态成员或者静态方法的,在java中有static修饰的class。scala之父曾说过如果有静态的成员,其他的线程对象都可以修改它,这不利于函数式编程。有一个Object可以达到和static类似的效果//如果class 名称和 Object 名称相同 叫做伴生对象 伴生对象往往是原创 2016-05-23 14:26:10 · 563 阅读 · 0 评论 -
一步步学spark之一scala的apply方法2.3
一步步学spark之一scala的apply方法scala中的apply方法是比较重要的,在spark源码中非常常见 apply主要是用来构建对象,准确的说是用来简化创建类的实例。创建一个ApplyOperation类打印出了apply!!在以后创建类的对象时候,首先写一个类 在写类的伴生对象,在伴生对象中写apply方法,main方法调用时候直接写伴生对象名称原创 2016-05-24 14:13:54 · 1049 阅读 · 0 评论 -
一步步学spark之一scala高级特性中隐式转换,隐式参数,隐式类3.8
一步步学spark之一scala高级特性中隐式转换,隐式参数,隐式类3.8隐式转换可以扩展类的功能,加上implicit 表示隐式转换,后面跟上要转换的函数隐式参数使用的时候在参数前面加上 implicit隐式参数作用:参数可以被隐式的赋值可以通过隐式参数发生隐式转换调用testparam方法 当name参原创 2016-05-27 10:49:44 · 1152 阅读 · 0 评论