大数据技术-Scala
文章平均质量分 52
kxr0502
这个作者很懒,什么都没留下…
展开
-
scala-46: ClassTag 、Manifest、ClassManifest、TypeTag代码实战及其在Spark中的应用源码解析
内容:1、ClassTag、Mainfest、ClassManifest、TypeTag实战2、ClassTag、Mainfest、ClassManifest、TypeTag在Spark中的广泛应用 def arrayMake[T : Manifest](first : T, second : T) = { val r = new Array[T](2); r(0)原创 2015-12-22 19:23:16 · 679 阅读 · 0 评论 -
scala-34:对List进行高效的排序和倒排序代码实战
内容:1、对list进行排序实战2、对list的倒排序实战def main(args: Array[String]){ def mergedsort[T] (less: (T, T) => Boolean) (input: List[T]): List[T] = { /** * @param xList 要合并的有序列表 * @param原创 2015-12-20 15:36:12 · 1500 阅读 · 0 评论 -
scala-33:List的一阶函数操作代码实战详解
内容: 1、List的Drop 、take 、splitAt 、Apply、tostring、indices、 mkString等实战2、List的toIterator、toArray、copyToArray实战(注:一阶函数为操作参数不是函数的函数) println(List (1,2,3,4) ::: List (4,5,6,7,8) ::: List (10,11)原创 2015-12-20 15:19:39 · 406 阅读 · 0 评论 -
scala-32:List的基本操作实战与基于模式匹配的List排序算法实现
内容:1、list的基本操作2、List进行模式匹配时的排序算法 val bigData = List("Hadoop" , "Spark") val data = List(1 , 2 , 3) (1)List的第一种申明方式 val bigData_Core = "Hadoop" :: ("Spark" :: Nil) val data_Int原创 2015-12-20 15:14:17 · 495 阅读 · 0 评论 -
scala-31:Option使用和实现内幕源码揭秘
内容:1、Option中的sealed关键字解析2、Option使用内部实战 如果在定义Option的时候使用sealed (abstract)关键字,那么Case Class 和Case Object必须在同一个包中,这种做法使得用Option的具体子类的Case Class和Case Object进行模式匹配的时候,编译器会帮我们检查所有匹配选项是否都已经列在Case中。原创 2015-12-20 15:09:39 · 536 阅读 · 0 评论 -
scala-30:模式匹配高级实战:嵌套的Case class
内容:1、嵌套的Case class与模式匹配结合实战解析2、Case object 实战解析 abstract class Item case class Book(description: String, price: Double) extends Item case class Bundle(description: String, price: Double, it原创 2015-12-20 14:47:35 · 1073 阅读 · 0 评论 -
scala-29:Case class和Case object代码实战解析
内容:1、Case Class代码实战解析2、Case Object实战解析(用于传递消息和模式匹配) abstract class Person case class Student(age: Int) extends Person case class Worker(age: Int, salary: Double) extends Person case object原创 2015-12-20 14:39:11 · 1278 阅读 · 0 评论 -
Scala-28:提取器Extractor实战详解
内容:1、Ectracter提取器代码实战2、Ectracter源码解析 def match_array(arr : Any) = arr match { case Array(0) => println("Array:" + "0") case Array(x, y) => println("Array:" + x + " " +y) case Arra原创 2015-12-20 14:33:50 · 529 阅读 · 0 评论 -
scala-27:Type、Array、List、Tuple模式匹配实战解析
内容:1、Type模式匹配实战解析2、Array模式匹配实战解析3、List模式匹配实战解析4、Tuple模式匹配实战解析(1)Type匹配 def match_type(t : Any) = t match { case p : Int => println("It is Integer") case p : String => println("It原创 2015-12-20 14:24:22 · 490 阅读 · 0 评论 -
Scala26模式匹配入门实战详解
内容:1、模式匹配分析2、模式匹配中使用守卫3、模式匹配中的变量使用(1)用data进行匹配,Scala中没有使用return和break,也就是说Scala更符合实际编码的过程。 val data =2 data match { case 1 => println("First") case 2 => println("Second")原创 2015-12-20 14:15:24 · 342 阅读 · 0 评论 -
scala-35:List的map、flatMap、foreach、filter操作代码实战
内容:1、对list的map和flatmap实战2、对list的foreach和filter实战Map:对list中的多有元素执行一个具体的函数,结果为一个list;Flatmap:对list的内部成员进行map,map的结果为一个list,然后在如果的基础上进行flat将map操作后的结果进行合并;Foreach:对list中成员执行一个函数,与map和flatmap不同原创 2015-12-20 15:40:45 · 2877 阅读 · 0 评论 -
scala-36:List的partition、find、takeWhile、dropWhile、 span、forall、exsists操作代码实战
内容:1、partition、find、takeWhile、drop、while实战2、Span、forall、exsists实战Partition:对list中的元素进行分类,分区;Find:找出list集合中第一个满足条件的元素;takeWhile:符合条件的情况下获取所有符合条件的元素;dropWhile:剪贴掉所有满足条件的元素;Span:将list中元素分原创 2015-12-20 15:48:09 · 993 阅读 · 0 评论 -
scala-45:Scala中Context Bounds代码实战及其在Spark中的应用源码解析
内容:1、Context Bounds的代码实战2、Context bounds在Spark中的广泛使用class Pair_Ordering[T : Ordering] (val first : T, val second : T){ def bigger(implicit ordered: Ordering[T]) = { if (ordered.compare(fir原创 2015-12-22 19:17:20 · 404 阅读 · 0 评论 -
scala-44:Scala中View Bounds代码实战及其在Spark中的应
内容:1、View Bounds的代码实战2、View bounds在Spark中的广泛使用class Pair_NotPerfect[T <% Comparable[T]](val first : T,val second : T){ def bigger = if(first.compareTo(second) > 0)first else second }class P原创 2015-12-21 19:18:18 · 482 阅读 · 0 评论 -
大数据系列第五课:scala高阶
第一阶段:Spark streaming、spark sql、kafka、spark内核原 理(必须有一个大型项目经验);第二阶段:spark运行的各种环境,各种故障的解决,性能 优化(精通spark内核、运行原理);第三阶段:流处理、机器学习为鳌头,需要首先掌握前两个 阶段的内容;跟随王家林老师的零基础讲解,注重动手实战,成为spark高手,笑傲大数据之林!第一部分:学原创 2016-01-06 13:28:01 · 733 阅读 · 0 评论 -
scala-43:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析
内容:1、Scala中的类型变量Bounds代码实战2、泛型变量Bounds在Spark中的应用class Pair[T <: Comparable[T]](val first : T,val second : T){ def bigger = if(first.compareTo(second) > 0)first else second }class Pair_Lower原创 2015-12-21 17:37:10 · 417 阅读 · 0 评论 -
scala-42:Scala中泛型类、泛型函数、泛型在Spark中的广泛应用
内容:1、scala的泛型类代码实战2、Scala中泛型函数代码实战3、Scala中泛型在Spark中的使用 通过List[+A]源码可以看出,list后面的[+A],A为未指明的类型,即类型是泛型, class Triple[F,S,T](val first:F,val second:S,val third:T) 构造泛型类Triple,它的构造器中有三个参数原创 2015-12-21 13:08:20 · 908 阅读 · 0 评论 -
scala-41:List继承体系实现内幕和方法操作源码揭秘
内容:1、List的继承体系分析和源码解读2、List方法操作源码解读实战 val list : List[Int] = List(1,2,3,4,5) val listAny : List[Any] = list println(list.isEmpty) println(list.head) println(list.tail)原创 2015-12-21 12:42:02 · 504 阅读 · 0 评论 -
scala-40:Set、Map、TreeSet、TreeMap操作代码实战
内容:1、set、map实战2、Treeset、Treemap实战1、set操作 val data = mutable.Set.empty[Int] // data ++= List(1, 2, 3) //将list集合追加给set data += 4; //将值4赋给set data --= List(2, 3); //去除list集合原创 2015-12-20 16:21:45 · 656 阅读 · 0 评论 -
scala-39:ListBuffer、ArrayBuffer、Queue、Stack操作代码实战
内容:1、listBuffer、arrayBuffer实战(先进先出)2、Queue、stack实战(先进后出) import scala.collection.mutable.ListBuffer val listBuffer = new ListBuffer[Int] listBuffer += 1 listBuffer += 2 printl原创 2015-12-20 16:03:55 · 479 阅读 · 0 评论 -
scala-37::List的foldLeft、foldRight、sort操作代码实战
内容:1、foldLeft、foldRight实战2、sort实战 println((1 to 100).foldLeft(0)(_+_) ) //函数体执行两元素相加从左到右 println((0 /: (1 to 100))(_+_)) println((1 to 5).foldRight(100)(_-_)) //执行两元素相减,从右到左原创 2015-12-20 15:50:08 · 552 阅读 · 0 评论 -
scala25-CurringCurring(柯里化)
def main(args: Array[String]) { def multiple(x: Int, y: Int) = x * ydef multipleOne(x: Int) = (y: Int) => x * y //multipleOne类似于第一个函数会做的事情val multipleTwo = multipleOne(1) //在第一个函数原创 2015-12-20 12:32:17 · 1325 阅读 · 0 评论 -
第24讲:Scala中SAM转换实战详解
内容:1、SAM的重大意义2、SAM转化代码实战 def main(args: Array[String]){ var data = 0 val frame = new JFrame("SAM Testing"); val jButton = new JButton("Counter") jButton.addActionListener(n原创 2015-12-20 11:21:48 · 1770 阅读 · 0 评论 -
大数据系列第四课:scala高阶
第一阶段:Spark streaming、spark sql、kafka、spark内核原 理(必须有一个大型项目经验);第二阶段:spark运行的各种环境,各种故障的解决,性能 优化(精通spark内核、运行原理);第三阶段:流处理、机器学习为鳌头,需要首先掌握前两个 阶段的内容;跟随王家林老师的零基础讲解,注重动手实战,成为spark高手,笑傲大数据之林!第一部分:学原创 2016-01-05 08:53:25 · 1095 阅读 · 0 评论 -
scala-08Scala主构造器、私有构造器、构造器重载实战详解
第8讲:Scala主构造器、私有构造器、构造器重载实战详解一、Scala主构造器&构造器重载(1)无参的主构造器//定义Teacher类时,有个默认构造器Teacher(),是其主构造器,其他所有构造器都是他的重载构造器,任何一个重载构造器必须直接或间接调用主构造器(2)有参的类构造器def main(args:Array[String]{Val p = new T原创 2015-08-13 19:24:43 · 537 阅读 · 0 评论 -
scala-06Map、Tuple、Zip实战解析
Map、Tuple、Zip实战解析基本数据结构 List12scala> val numbers = List(1, 2, 3, 4)numbers: List[Int] = List(1, 2, 3, 4)Set集合中没有重复元素12scala> Set(1, 1, 2)res0:转载 2015-08-13 19:22:06 · 485 阅读 · 0 评论 -
scala-07Scala类的属性和对象私有字段实战详解
第7讲:Scala类的属性和对象私有字段实战详解一、Scala类//没有Public,默认是Public级别Class Person{ Private var age = 0 //var可改变值的,private级别,与java不同的是这个age必须赋值 Def increment(){age += 1} Def current = age}Class原创 2015-08-13 19:23:51 · 529 阅读 · 0 评论 -
scala-04For与Function进阶实战、Lazy的使用
For与Function进阶实战、Lazy的使用一、for循环的进阶实战Def main=(args:Array[String]):Unit{For(iPrintln((100*i+j)+” ")也可在for循环中加入条件表达式:For(iPrintln((100*i+j)+” ")}定义函数的时候一般函数都有值,函数可以作为函数的参数去赋值def Ads原创 2015-08-12 09:11:09 · 390 阅读 · 0 评论 -
scala-03Tuple、Array、Map
scala-03Tuple、Array、MapMap映射映射和和元组,也就是Maps和Tuples。Map这东西应该都挺明白的,就是键值对的集合。在Scala中,Map是对偶(算是键值对的另一个说法吧)的集合。->操作符用来创建对偶,"Alice" -> 10产出 ("Alice", 10),即key和values。1、更改对偶:(1)可变的Map,更改某个已有的值,或者是添加一个原创 2015-08-11 18:02:12 · 465 阅读 · 0 评论 -
scala-13 Scala中作为接口的trait、在对象中混入trait代码实战
Scala中作为接口的trait、在对象中混入trait代码实战Scala中的trait类型于Java中的interface,但比interface强大的多。Scala语言中trait的定义和使用: (1)与Java语言中的接口(interface)中只含有抽象方法不同,Scala语言中的特质(trait)可以包含抽象字段、抽象方法或者实现了方法体的方法。 (2)在使用Scal原创 2015-08-23 22:50:09 · 489 阅读 · 0 评论 -
scala-12抽象类、抽象字段、抽象方法
抽象类、抽象字段、抽象方法申明抽象类使用abstract,在scala中,抽象类和物质中的方法、字段和类型都可以是抽象的。(1)抽象字段:具体类中给字段申明的时候不给字段赋值,该字段变为抽象字段Class Hello{ Var number:int=_} //非抽象类,申明字段必须赋值(具体值或者用占位符_代替,且使用占位符的时候必须为var)Abstract cla原创 2015-08-23 22:48:33 · 1156 阅读 · 0 评论 -
Scala中类的继承,超类的重载等
Scala中类的继承,超类的重载等(1)与Java语言一样,Scala语言也是使用extends关键字实现子类对父类的继承。 (2)子类中的方法和字段可以使用 override 关键字实现对它的超类(父类)中同名的方法或字段进行覆写(重写)。(3)当子类使用主构造器进行实例化时,与父类的主构造器中同名的参数也会直接传递具体的参数值给父类使用。类的继承中子类继承了父类的参数同时又重新原创 2015-08-23 22:38:32 · 1705 阅读 · 0 评论 -
scala-15Scala多重继承、多重继承构造器执行顺序及AOP实现
Scala多重继承、多重继承构造器执行顺序及AOP实现内容:1、多重继承的trait代码实战2、多重继承构造器执行顺序3、给予trait的AOP代码实现该代码中PianoPlayer类继承了Human,在构造的时候按照从左到右的顺序进行构造,TTeacher和PianoPlayer是PianoTeacher的特性,然后覆写了TTeacher的抽象方法teach。原创 2015-08-23 22:57:07 · 504 阅读 · 0 评论 -
scala学习笔记01-环境搭建
Scala语言是函数式编程和面向对象编程完美结合的语言,在此我们开启学习Scala学习之旅!(可伸缩的语言是一门多范式的编程语言,一种类似java的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。)Scala环境搭建1、下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-13836原创 2015-08-04 21:35:08 · 413 阅读 · 0 评论 -
Scala单例对象、伴生对象实战详解
Scala单例对象、伴生对象实战详解(信息来源于 DT大数据梦工厂微信公众账号:DT_Spark)1、Scala单例对象(1)Scala单例对象是十分重要的,没有像在Java一样,有静态类、静态成员、静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员、它的方法都默认是静态的。(2)如果object的静态成员要被外界访问,则该成员不能原创 2015-08-18 07:53:41 · 510 阅读 · 0 评论 -
scala22-Scala中的闭包
内容:1、Scala闭包解析2、Scala闭包实战 val data = List(1, 2, 3, 4, 5, 6) var sum = 0 data.foreach(sum += _)闭包(除了其作用域可以继续使用它) 1 scala> var more = 1 2 more: Int = 1 3 scala> val addMore = (x: Int)原创 2015-12-20 10:50:30 · 386 阅读 · 0 评论 -
Scala偏函数
内容:1、Scala偏函数实战2、Scala偏函数解析 val data = List(1, 2, 3, 4, 5, 6) data.foreach(println _) data.foreach(x => println(x))Println _这种下划线代表若干个参数的函数称为偏函数,偏函数实际是值类型一种表达式,这种表达式在使用时候只提供部分参数,所以可以将原创 2015-12-20 10:42:00 · 550 阅读 · 0 评论 -
Scala中的本地函数与作为语言一等公民的函数详解
内容:1、本地函数代码实战(函数内部函数)2、作为一等公民的函数的代码实战 var increase = (x: Int) => x + 1 println(increase(10)) increase = (x: Int) => x + 9999//将函数(一等公民)作为一个值进行赋值 def processData(filename: String,原创 2015-12-20 10:33:09 · 1107 阅读 · 0 评论 -
Scala中的正则表达式、与模式匹配结合的的Reg代码实战
内容:1、正则表达式代码2、与模式匹配结合的reg代码实战 与正则表达式相关的类是scala.util.matching.Regex类。要构造一个Regex对象,使用String类的r方法即可(.r)。如果正则表达式中包含反斜杠或引号之类的需要转义的字符,那么最好是使用原始(raw)字符串,以三个”号包围。2val numPattern原创 2015-12-20 09:46:46 · 1026 阅读 · 0 评论 -
Scala中文件的读取、写入、控制台输入操作代码实战
内容:1、文件的读取、写入操作2、控制台操作代码实战 val file = Source.fromFile("E:\\WangJialin.txt") for(line <-file.getLines){println(file) file.close }1、读取E:\\Wangjialin.txt文本文件其中Source.fromFil原创 2015-12-20 09:29:23 · 3108 阅读 · 0 评论