Scala
文章平均质量分 71
snail_gesture
Machine Learning|Deep Learning|BigData
展开
-
Scala学习笔记--Map,Tuple,Zip总结
补充定义: 映射:键/值对偶的集合 在Scala中,映射是对偶的集合,对偶简单地说就是两个值构成的组,这两个值并不一定是同一类型的,例如:(“Alice”,10) 元组(tuple) 是不同类型的值得聚集Map(构造映射) “Alice” -> 10 “->”用来创建对偶 ->(“Alice”,10) //构造一个不可以变的Map[Str原创 2015-08-22 23:08:14 · 685 阅读 · 0 评论 -
Spark Tungsten-sort Based Shuffle 分析
本篇博客主要是对Tungsten-sort Based Shuffle简单分析,因为钨丝计划还没有成熟,所以这里不会太详细的介绍。 一:使用Tungsten功能 1, 如果想让您的程序使用Tungsten的功能,可以配置: Spark.Shuffle.Manager = tungsten-sort Spark在钨丝计划下要管理两种类型的内存存储方式:堆内和堆外。为了管理他们,所以搞了一原创 2016-03-13 16:37:24 · 897 阅读 · 0 评论 -
第4讲:Scala模式匹配、类型系统彻底精通与Spark源码阅读
简介: 本篇文章主要要点有: Scala模式匹配彻底详解 Scala类型系统彻底详解 Spark源码阅读及作业 1. Scala模式匹配彻底详解 Scala中的模式匹配类似于java中的switch case,但是switch case是对值进行匹配,操作的对象也是值。Scala除了对值可以进行匹配外,还可以对类型进行匹配,也可以对集合,例如,map原创 2016-02-04 22:34:12 · 934 阅读 · 0 评论 -
第3讲:Scala函数式编程彻底精通
简介: 本篇博文主要是对Scala函数式编程的彻底详解,涉及高阶函数,闭包,颗粒化等详解。 1. Scala函数式编程 Scala中的函数的可以不依赖类或则借口,独立存在,甚至函数可以作为参数传递,可以直接赋值给变量。 Scala的函数式编程使得算法的设计可以更高效更精简,因为函数式是依赖人们的思考 方式构建的。 Scala的函数式编程是的开发代码行数更少。 Sp原创 2016-02-03 11:37:07 · 3856 阅读 · 0 评论 -
Scala高阶函数,闭包,颗粒化,集合
简介:本篇文章主要是对Scala高阶函数,闭包,颗粒化,集合讨论。Scala函数式编程Scala中的函数的可以不依赖类或则借口,独立存在,甚至函数可以作为参数传递,可以直接赋值给变量。Scala的函数式编程使得算法的设计可以更高效更精简,因为函数式是依赖人们的思考 方式构建的。Scala的函数式编程是的开发代码行数更少。Spark中的代码几乎所有都是用函数式编写的,集合的函原创 2016-01-07 13:57:12 · 2954 阅读 · 0 评论 -
Scala快速入门--For循环和函数
简介: Scala输入输出 Scala函数 循环1. 输入和输出scala> println("Hello, %s! You are %d years old.\n ","Scala",21)(Hello, %s! You are %d years old. ,Scala,21)可以使用readLine函数从控制台读取一行输入,scala> val原创 2016-01-02 03:31:04 · 1276 阅读 · 1 评论 -
Scala学习笔记--Array和List和Tuple和Set和Map
Array(可变的同类对象序列) Scala里面使用new实例化对象,实例化过程中,可以用值和类型使对象参数化(parameterize) 参数化的意思是:在创建实例的同事完成对它的”设置”。使用值参数化实例通过把值传递给构造器的 圆括号来实现。 scala> val big = new java.math.BigInteger(“12345”) b原创 2015-11-04 21:07:21 · 1956 阅读 · 0 评论 -
Scala学习笔记--隐式类型和隐式转换
1>隐式转换: 隐式转换(implicit conversion function)指的是那种以implicit关键字声明的带有单个参数的函数。 2>想使用File的对象直接调用read方法,但是此类中不含有该方法,所有用隐式转换把file类型转换为RichFile类型,然后调用该方法。 3>隐式转换的命名规则,file2RichFile,前面是现有类型,后面是目标类型。 4>编译器在编译的原创 2015-09-07 19:02:23 · 718 阅读 · 0 评论 -
Scala学习笔记--数组
对于Scala来说,数组是一块相当总要的内容,因此掌握是十分重要的。 数组分为两种:定长数组(Array) 变长数组(Arraybuffer) Array: //10个整数的数组,所有元素的初始化为0 val nums = new ArrayString//长度为2的Array[String]--类型是推断出来的//注:已提供初始值就不需要new了val s = Arra原创 2015-08-21 23:25:10 · 781 阅读 · 0 评论 -
Scala学习笔记--for,function,lazy用法小结
1.循环for for(i <- 表达式) //i会自动遍历表达式里面的所有值 //for变量中之前并没有指定i的类型,i是集合的元素类型,循环变量的作用域一直持续到循环结束。 1>在遍历字符串或数组时,可以使用until方法,而不是使用to方法,因为until方法返回一个并不包含上限的区间。 例如: var sum = 0; for(ch <-原创 2015-08-21 23:19:15 · 1354 阅读 · 0 评论 -
Scala学习笔记--Mainfest,ClassTag原理浅析
1> Mainfest上下文界定 1. 在scala中数组必须是有类型的,如果直接是泛型的话将会报错,这时候引入了Manifest上下文界定,需要一个Mainfest[T]对象,而mainifest[T]有一个隐式值, 2. 如果调用makePair(1,2),编译器将定位到隐式的Manifst[Int]并实际上调用makePair(2,3)(intManifest),该方法调用的就是ne原创 2015-09-01 23:49:40 · 4576 阅读 · 0 评论 -
Scala学习笔记--视图界定
1> 泛型类 1. 定义形式 class Pair[T,S](val first : T, val second : S) T,S是类型的参数 2. Scala会从构造参数推断出实际类型 Val p = new Pair(42,”String”) //Pair[Int,String] 你也可以自己指定类型 Val p2 = new Pair原创 2015-09-01 13:03:50 · 1770 阅读 · 0 评论 -
Scala学习笔记--模式匹配
Pattern matching(模式匹配) 1> 定义一个data常量,对它进行匹配,最后一行是_如果前面都不满足则匹配到他 2>在模式匹配中可以加入判断语句,进行选择 3>可以对表达式的类型进行匹配,在Scala中用这种匹配模式,而不是isInstanceOf操作符 4>匹配数组,列表和元组 1.匹配数组 2.匹配列表 3.匹配元组 4>样例类是一种特原创 2015-08-30 00:14:10 · 575 阅读 · 0 评论 -
Scala学习笔记--apply用法
1>单例对象 scala中可以用object来达到静态方法或静态字段 例如: //如下的变量和方法都是静态的 //object里面的内容只有第一次使用的时候才会执行 object University{ private var studentNo = 0 def newStudentNo = { stude原创 2015-08-24 22:31:21 · 610 阅读 · 0 评论 -
Scala学习笔记--特质
在scala中,特质相当于java中的接口,但是其功能要强大 点多。scala不允许类从多个超类继承 1.如下是一个特质,是具有接口性质的功能 1>log是一个抽象方法,不需要再前面加关键字abstract 2>子类实现,使用extends继承。复写方法的时候,def前面不需要加override 3>如果你需要多个特质,需要用with关键字 4>特质里面不一定都是抽样方法原创 2015-08-24 22:55:16 · 527 阅读 · 0 评论 -
Scala学习笔记--单例,伴生对象及apply用法
1>单例对象 scala中可以用object来达到静态方法或静态字段 例如: //如下的变量和方法都是静态的 //object里面的内容只有第一次使用的时候才会执行 object University{ private var studentNo = 0 def newStudentNo = { stude原创 2015-08-23 22:23:30 · 2033 阅读 · 0 评论 -
Scala学习笔记--Constructor
Scala的类和java中的类很相似,但是scala中的类表达更精炼 class Counter{ //在scala中类中定义的实例默认是public //必须初始化 private var value = 0 //方法默认是公有的 def increment(){value += 1} } 在scala中,getter原创 2015-08-23 22:22:00 · 1055 阅读 · 0 评论 -
钨丝计划初探
本篇博文主要讲解内容如下: 1. 钨丝计划的产生的原因 2. 钨丝计划内幕详解 安排: 钨丝计划主要分为三篇博文进行详解,本博文主要是对钨丝计划进行介绍,先从理论的角度来理解钨丝计划。 一:“钨丝计划”产生的本质原因 1, Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追求之一,Spark基于内存迭代(部分基于磁盘迭代)的模型极大的原创 2016-03-12 12:21:50 · 1519 阅读 · 0 评论