Scala(三)】的更多相关文章

类:Class 1.简单类和无参方法 2.带getter和setter属性 3.只带getter属性 4.对象私有字段 5.Bean属性 6.辅助构造器 7.主构造器 8.嵌套类 1.简单类和无参方法 Scala中的简单类和Java中很相似 class ClassOps{ private var value = 0 //你必须初始化字段 def increment(){value += 1} //方法默认是公有的 def current() = value } /* *在Scala中类并不声明为…
目录 一.方法和函数 1.方法 1)基本语法 2)简化原则 3)方法参数 2.函数 3.方法和函数的区别 二.高阶函数 三.匿名函数 四.柯里化 五.闭包 一.方法和函数 1.方法 1)基本语法 def 方法名(参数名:参数类型,...):返回值类型 = {方法体} 示例 def add(x: Int, y: Int): Int = { x + y } 2)简化原则 1.方法体中只有一行语句的时候,{ }可以省略 示例 def add(x: Int, y: Int): Int = x + y 2…
一.控制语句 var x = 40 if(x == 40){ println("greate") } 二.循环 (1) 一般循环 while(a>1){ if(a==2){ break } a = a - 1 } until x ,取到x以前的值 to x,取到值为x的值 for(i <- 0 until 10){ println(i) } for(i <- 0 to 10){ println(i) } (2) for循环集合 for(x <- list){ p…
安装Scala 1,到http://www.scala-lang.org/download/ 下载与Spark版本对应的Scala.Spark1.2对应于Scala2.10的版本.这里下载scala-2.10.4.tgz. 2,解压安装Scala 1), 执行#tar -axvf scala-2.10.4.tgz,解压到/root/spark/scala-2.10.4. 2),在~/.bash_profile中添加如下配置: export SCALA_HOME=/root/spark/scala…
Scala 入门详解 基本语法 Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的 Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递.类,对象,方法,实例变量的概念: 对象 - 对象有属性和行为.例如:一只狗的状属性有:颜色,名字,行为有:叫.跑.吃等.对象是一个类的实例. 类 - 类是对象的抽象,而对象是类的具体实例. 方法 - 方法描述基本的行为,一个类可以包含多个方法. 字段 - 每个对象都有它唯一的实例变量集合,即字段.对象的属性通过给字段赋值…
一.安装jdk 二.安装scala 三.安装Spark 1.解压 tar -zxvf spark-1.5.1-bin-hadoop2.6.tgz 2.cp spark-env.sh.template spark-env.sh vi spark-env.sh # Hadoop配置文件目录 export HADOOP_CONF_DIR=/data/hadoop-2.7.1/etc/hadoop # SCALA路径 export SCALA_HOME=/data/scala-2.10.6 export…
一.准备工作: 1.下载release版spark 0.9.1,本次用的版本是spark-0.9.1-bin-cdh4. 2.下载scala IDE 3.0.2,这个版本ide的支持scala 2.10版. 二.配置工作 1.在ide中新建scala项目,注意jre要用jdk1.7版的.如下图: 2.找到spark-0.9.1-bin-cdh4\core\src\main,目录下java.resources.scala三个目录,如下图 找到spark-0.9.1-bin-cdh4\repl\sr…
目录 业务需求 业务数据源 用户访问Session分析 Session聚合统计 Session分层抽样 Top10热门品类 Top10活跃Session 页面单跳转化率分析 各区域热门商品统计分析 广告点击流量实时统计分析 总体流程 实时黑名单 广告点击实时统计 统计每天各省top3热门广告 统计各广告最近1小时内的点击量趋势:各广告最近1小时内各分钟的点击量 Flink实现 本文是原项目的一次重写.主要是用DataFrame代替原来的RDD,并在一些实现上进行优化,还有就是实时流计算改用Fli…
Spark练习之action操作开发 一.reduce 1.1 Java 1.2 Scala 二.collect 2.1 Java 2.2 Scala 三.count 3.1 Java 3.2 Scala 四.take 4.1 Java 4.2 Scala 五.saveAsTextFile 5.1 Java 六.countByKey 6.1 Java 6.2 Scala 七.foreach 八.main函数 8.1 Java 8.2 Scala 一.reduce 1.1 Java private…
Spark练习之Transformation操作开发 一.map:将集合中的每个元素乘以2 1.1 Java 1.2 Scala 二.filter:过滤出集合中的偶数 2.1 Java 2.2 Scala 三.flatMap:将行拆分为单词 3.1 Java 3.2 Scala 四.groupByKey:将每个班级的成绩进行分组 4.1 Java 2.2 Scala 五.reduceByKey:统计每个班级的总分 5.1 Java 5.2 Scala 六.sortByKey:将学生分数进行排序…
PySpark 大数据分析实用指南 零.前言 一.安装 Pyspark 并设置您的开发环境 二.使用 RDD 将您的大数据带入 Spark 环境 三.Spark 笔记本的大数据清理和整理 四.将数据汇总成有用的报告 五.强大的 MLlib 探索性数据分析 六.使用 SparkSQL 构建大数据结构 七.转换和动作 八.不变设计 九.避免打乱和降低操作成本 十.以正确的格式保存数据 十一.使用 Spark 键/值应用编程接口 十二.测试 ApacheSpark 作业 十三.利用 Spark 图形接…
主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. 3. Data and Abstraction 3.1 Class Hierarchies 这一集字幕不同步-,-,听得有点费力! 类的概念和其他语言里面很相似,基类,子类,父类啥的叫法差不多.在 Scala 中,所有用户自定义的类都是另外一个类的子类,如果没有显式给定父类,java 里面默认继承 java.…
一些基本类型 值类型 范围 Byte 8位有符号补码整数(-27-27-1) Short 16位有符号补码整数(-215-215-1) Int 32位有符号补码整数(-231-231-1) Long 64位有符号补码整数(-263-263-1) Char 16位无符号Unicode字符(0-216-1) String 字符序列 Float 32位IEEE754单精度浮点数 Double 64位IEEE754单精度浮点数 Boolean true或false 除了 String 归于 java.l…
转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的一次主题演讲中,他作出了一个有洞察性的观点: Java的遗产将是平台,而不是程序设计语言. Java技术的原始工程师们作出了一个明智的决定,就是将编程语言与运行时环境分开,最终这使得超过200种语言能够运行在Java平台上.这种架构对于该平台的长期活力是至关重要的,因为计算机程序设计语言的寿命一般都…
本系列博客以<Programming in Scala 2nd Edition>为主,围绕其中的代码片段进行学习和分析. 本文主要梳理Chapter2和Chapter3中涉及到的主要概念. 一.变量定义时的val和var 在Scala中定义一个变量可以使用两种关键字var和val.其中val类似于Java中的final类型变量,值不可变.var定义的变量值是可变的. 1.val变量 当给一个val变量重新赋值时就会出现如下提示: 2.var变量 如果确实需要更改某个变量的值,可以使用var.下…
一.Scala概述 scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性.scala运行在虚拟机上,并兼容现有的Java程序.Scala源代码被编译成java字节码,所以运行在JVM上,并可以调用现有的Java类库. 二.第一个Scala程序 Scala语句末尾的分号可写可不写 HelloSpark.scala object HelloSpark{ def main(args:Array[String]):Unit = { println("Hello Spark!"…
一.面向对象编程——类 1.定义一个简单的类 class HelloWorld { private var name = "leo" def sayHello() { print("Hello, " + name) } def getName = name } 创建类的对象, 并调用其方法 val helloWorld = new HelloWorld helloWorld.sayHello() print(helloWorld.getName) 调用类中的方法时,…
本文先叙述如何配置eclipse中maven+scala的开发环境,之后,叙述如何实现spark的本地运行.最后,成功运行scala编写的spark程序. 刚开始我的eclipse+maven环境是配置好的. 系统:win7 eclipse版本:Luna Release(4.4.0) maven是从EclipseMarket中安装的,如图1. 当初构建eclipse+maven环境时,仅仅安装了第一个. 这里可以先不用急着安装maven,下面在安装maven for scala时,也提供了mav…
作者:摆摆少年梦 视频地址:http://blog.csdn.net/wsscy2004/article/details/38440247 本节主要内容 Type Specialization Manifest.TypeTag.ClassTag Scala类型系统总结 在scala中,类(class)与类型(type)是两个不一样的概念.我们知道类是对同一类型数据的抽象,而类型则更详细. 比方定义class List[T] {}, 能够有List[Int] 和 List[String]等详细类型…
三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. 按照第一篇在windows下安装好scala后,直接Ctrl+R,然后在运行命令窗里输入scala,或者输入cmd后,进入命令行在输入scala. 然后我们输入 print("Hello World!") 看下结果: 第一种方式运行完毕. 注意:前两行命令使用了Tab键,可以像bash一样有补全的功能哦! 二.Scala脚本完成H…
三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. windows下安装好scala后,直接Ctrl+R,然后在运行命令窗里输入scala,或者输入cmd后,进入命令行在输入scala. 然后我们输入 print("Hello World!") 看下结果: 第一种方式运行完毕. 注意:前两行命令使用了Tab键,可以像bash一样有补全的功能哦! 二.Scala脚本完成HelloWo…
一.条件表达式if Scala中的if/else语法结构与Java中的一样,唯一不同的是,Scala中的if表达式是有返回值的. object ScalaApp extends App { val x = "scala" val result = if (x.length == 5) "true" else "false" print(result) } 在Java中,每行语句都需要使用;表示结束,但是在Scala中并不需要.除非你在单行语句中写…
Scala既是一门面向对象(OOP)语言,又是一门函数式编程(FP)语言.作为一门支持函数式编程的语言,Scala鼓励面向表达式编程(EOP)模型.简单来说,EOP中每个语句都有返回值.这一模式很明显,因为if/else语句就可以返回值: val result = if(a > b) a else b 1. 使用函数字面量(匿名函数) val a = List.range(1,10) val b = a.filter((i:Int) => i % 2 == 0) println(b) 结果:…
前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍 前面已经稍微介绍了scala的常用语法以及面向对象的一些简要知识,这次是补充上一章的,主要会介绍集合和函数. 注意噢,函数和方法是不一样的,方法是在类里面定义的,函数是可以单独存在的(严格来说,在scala内部,每个函数都是一个类) 一.scala集合介绍 还记得上一章介绍的object的apply方法吗,很多数据结构其实都用到了它,从而让我们可以直接用List(...)这样来新建…
一.条件表达式if Scala 中的 if/else 语法结构与 Java 中的一样,唯一不同的是,Scala 中的 if 表达式是有返回值的. object ScalaApp extends App { val x = "scala" val result = if (x.length == 5) "true" else "false" print(result) } 在 Java 中,每行语句都需要使用 ; 表示结束,但是在 Scala 中并…
classOf.isInstanceOf.asInstanceOf三个预定义方法分析 Scala的三个预定义(predefined)方法,我们经常用到:它们用来感觉很简单, 但是里面还是隐藏了一些细节东西,不妨花点时间来分析分析. 先上代码 PredefineTest.scala object PredefineTest{ def main(args: Array[String]):Unit = { val c : Char = 97.asInstanceOf[Char] "hello"…
一.若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer 固定长度数组: 如val nums=new Array[Int](10) //10个整型数组,所有元素初始化为0; val a=new Array[String](10) //10个元素的字符串数组,所有元素为null 变长数组: ArrayBuffer(相当于Java中的ArrayList) import scala.collection.mutable.ArrayBuffer val b=ArrayBuffer[I…
本课程源码共享于 https://github.com/tree1123/learning-scala 首先,打开IDEA编辑器的SbtExampleProject项目,我们将在这个项目下进行练习 本节的练习内容位于 com.tree1123.Base 中 新建一个main函数 一 .声明值和变量 Scala声明变量有两种方式,一个用val,一个用var 声明格式为: val/var 变量名[:变量类型] = 变量值 val定义的值是不可变的 类似于一个常量 IDEA的快捷键 Enter + A…
1.Scala执行流程分析 2.Scala程序开发注意事项(重点) Scala源文件以 “.scala" 为扩展名. Scala程序的执行入口是main()函数. Scala语言严格区分大小写. Scala方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后自动加分号),这也体现出Scala的简洁性. 如果在同一行有多条语句,除了最后一条语句不需要分号,其它语句需要分号. 3.Scala常用的转义字符(escape char) \t :一个制表位,实现对齐的功能 \n :换行符…
Scala语言笔记 - 第三篇(容器方法篇) 目录 Scala语言笔记 - 第三篇(容器方法篇) map和flapMap方法: ​ 最近研究了下scala语言,这个语言最强大的就是它强大的函数式编程(Function Programming)能力,记录下最近学习的一些新的和技巧.注意:本系列博客不会从头讲解该语言的语法,而是通过一些例子讲解该语言的一些技巧,如果需要从头学习scala,建议使用该教程快速入门. map和flapMap方法: ​ 对于数组或者容器,scala和Python等语言类似…