大数据之Scala

一。Scala概述

为何学习Scala?
可扩展,兼容java,语法简洁,静态类型化,支持并发控制(运行在JVM虚拟机上)

二。scala下载安装

下载地址

1.安装jdk1.8,scala运行依赖java
2.下载scala压缩包解压即安装成功,并配置环境变量
3.测试:启动CMD,运行scala查看版本信息

三。开发Scala

1.命令行开发scala

1.写个scala文件: HelloScala.scala
2.编译           scalac HelloScala.scala             (就像javac Demo1.java)
3.运行class文件   scala com.saprk.HelloScala          (就像java  Demo1)

2.idea开发scala

一、先安装scala并配置环境变量
二、idea安装scala插件(安装插件的两种方式见下面)
三、idea创建scala,类型选择Object,定义main方法,然后运行

方式一:
1.idea先安装scala插件
   File————Setting————Plugins————Scala————Install
   
2.idea创建项目并鼠标点击项目名称,右键,add FrameworkSupport,勾选scala,应用
   如果找不到scala可以勾选,file——project Structure——modules——dependencies,选择scala去掉,重新add FrameworkSupport

方式二:
   pom文件加scala插件
   <build>
        <finalName>spark</finalName>
        <plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.2.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

三。基础语法

1。声明与定义
  常量声明:val  
      val x:T = e 或  
      val x = e(类型省略,默认类型)
  变量声明:var
      var x:T = 3var x = 3(类型省略,默认类型)
  函数声明:def   
      def adder(x:Int,y:Int) = x + y
      def adder() = e

  无参函数:
     类型声明:type
     类声明:class
     对象声明:object

2。数据类型:4 2 1 1和java一样,加一个String
   整型值:  Short,Int,Long,Byte
   浮点型值:Float,Double
   布尔值:   Boolean
   字符值:   Char(单引号,单字符)
   String:双引号
   几个特殊类型:Unit  None  Nothing

3。操作符运算
  =  -  *  /  %
  >  <  >=  <=  =
  && ||
  ==  !=
  &   |   ^   ~

4。语句
   判断语句  循环语句  枚举语句   匹配语句      异常             输入输出
     if      while      for      match     throw/try    readLine/readInt/println

5。数组和集合
  数组
     val A = new Array[int](10)
     val B = Array(N1,N2)
     Array(List(1,2,3,4),List(1,2,3,4))
  集合
      List(1,2,3,4)

6。映射(相当于map)
数组是包含一组元素的集合,映射是包含一组键值对应元素的集合
 1.不可变映射:Map(a1->b1,a2->b2,a3->b3)
 2.可变映射:
     val X = scala.collection.mutable.Map((a1,b1),(a2,b2),(a3,b3))
     val X = new scala.collection.mutable.Map[T1,T2]

7。元组
 元组是不同类型的值的聚集
 声明:val g = (1,'A',"hello")
 取第一个值: val h=g _1
 
8.zip方法:把几个集合结合起来
   val one = Array('a','b','c')
   val two = Array(1,2,3)
   val three = one.zip(two) 或 one zip two
  
   遍历数组结合zip方法可以生成映射

9。包的引入与作用范围

10.打印
   listRDD.collect().foreach(println)
   result.foreach(println)

在这里插入图片描述

四。类、对象与构造器

//类
class month{
  val one = 25
  var two = 15
  var three : int
  def firstday = 
  def now = 
  def now_ = 
  def lastday(m_char) = {}
}

//对象
object WordCount {
  def main(args: Array[String]): Unit = {
    
  }
}

五。伴生对象

1.定义:当一个单例对象存在同名类的时候,这个对象称为伴生对象
2.案例
 class HelloWorld(...)
 object HelloWorld(...)
3.特点:
  a.类和其伴生对象可以互相访问私有属性,但必须存在同一个源文件中
  b.类的伴生对象可以被访问,但并不在作用域中

六。高阶函数

1.头等函数



2.匿名函数

即不命名的函数, (x:int) => x*2
val f2 = (a:int) => a*2

3.柯里化

指的是将接受两个参数的函数变成新的接受一个参数的函数过程 (将A函数转换成功B函数,A函数接受两个参数,B函数接受一个参数)

4.控制抽象



七。模式匹配

模式匹配是数据结构上的概念,数据结构包括数组,集合,类,函数等
通配符 _ 表示任意,_* 则表示任意长度

除了结构匹配,还有类型匹配
1.样式匹配
2.样例类
3.封闭类
4.偏函数

八。泛型

九。型变

协变 class Stack[+T]
逆变 class Stack[-T]

十。注解

1.定义:能被编译器或外部工具处理的一些信息
2.案例
   a.给主构造器添加注解,需要加注解放在构造器前面,并听添加一对括号:
         class Credentials @Inject() (var username:String,var password:String)
   b.给表达式添加注解:在表达式后面加冒号,然后是注解
        (myMap.get(key)):@unchecked) match { }
   c.为类型参数添加注解
        class MyContainer[@specialized]
   d.针对实际类型的注解应放置在类型名称之后
        String @cps[Unit]
3.注解举例
   废弃 @deprecated
   易变字段 @volatile
   自动的get/set方法对  @scala.reflect.BeanProperty
   不检查: @unchecked
   生成跳转表: @switch
   基本类型特殊化: @specialized            

十一。Actor和并发

1.定义:
    a.Actor:一种便于使用的并发模型,是scala用于大数据处理的结构基础
    b.并发:将一个计算机任务,分成几个小的部分,让它们同时被计算,之后再汇整计算结果
    c.常见的并发结构:多线程,分布式计算,消息传递,资源共享(内存共享)
    d.常用的并发模型:参与者模式,Petri网,通信顺序进程

2.scala使用actor作为其并发编程模型
  一种基于消息传递而非资源共享的并发模型,能尽可能避免死锁和共享状态
  actor可以理解为虚拟线程,能实现线程的复用,从而产生数百上千的actor并有效控制系统开销

3.actor使用原则
   a.避免共享
   b.不调用方法
   c.足够简单
   d.异步调用
   e.使用react
   f.容错

十二。集合

集合的创建
  val list = List(("a",1),("b",2),("c",3))  //大写


集合的遍历
 x.foreach((i:Int) => println(i))

for(i <- fruits) println(i)
for(i <- 0 until fruits.size) println(s"$i is ${fruits(i)}")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、Scala核心编程课程简介近年来随着大数据的兴起,大数据核心框架Spark和Kafka也受到到广泛关注, Spark底层是Scala实现的, 因此也带火了Scala语言,目前Scala被全球知名公司(如:谷歌、百度、阿里、Twitter、京东等)广泛用于Spark开发。新一代的物联网时代到来,会对大数据应用人才的需求越加紧迫。 尚硅谷网罗和整合了学员很喜爱的师资,打造出专注于Spark开发的Scala课程,我们讲解Scala核心编程技术,同时也讲解编程思想、设计模式和Scala底层实现,让您有豁然开朗的感受。二、课程内容和目标本课程重点讲解Scala核心编程,内容包括: Scala语言概述、运算符、程序流程控制、数据结构之集合、Map映射、过滤、化简、折叠、扫描、拉链、视图、并行集合、高阶函数、函数柯里化、偏函数、参数推断、控制抽象、Trait、面向对象编程、异常处理、惰性函数、Akka及Actor模型、Spark Master和Worker通讯、隐式转换、隐式参数、工厂模式、单例模式、观察者模式、装饰者模式、代理模式、泛型、上下界、视图界定、上下文界定、协变逆变不变和源码剖析。通过系统全面的学习,学员能掌握Scala编程思想和Scala底层机制,为进一步学习Spark打下坚实基础。三、谁适合学1.希望以较低的投入和风险,来了解自己是否适合转型从事Spark开发的求职人员。2.有一定的Java基础,或者自学过一些Java书籍与视频资料,想系统掌握Scala语言的程序员。
### 回答1: 尚硅谷大数据技术之scala.docx 是一份关于Scala编程语言的大数据技术文档。Scala由Martin Odersky教授于2003年创建,结合了面向对象编程和函数式编程的特点,被广泛应用于大数据领域。 Scala具有简洁、灵活、强大的特性,逐渐成为大数据领域最受欢迎的编程语言之一。它允许开发人员快速编写高效、可维护的大规模数据处理和分析代码,并能与其他大数据技术(如Hadoop、Spark等)无缝集成。 尚硅谷大数据技术之scala.docx文档可能包含了Scala的基础语法、面向对象和函数式编程的概念,以及如何在大数据环境中应用Scala进行数据处理和分析的具体案例。通过学习这份文档,读者可以了解Scala的核心特点、语法规则和编程范式,以及如何使用Scala进行大数据处理和分析。 此外,尚硅谷大数据技术之scala.docx文档可能还介绍了Scala大数据生态系统中的重要角色。由于Scala与Java高度兼容,许多大数据技术(如Spark)都选择Scala作为其主要开发语言。因此,掌握Scala可以为读者在大数据领域的就业和职业发展提供很大的帮助。 综上所述,尚硅谷大数据技术之scala.docx是一份关于Scala编程语言在大数据领域中应用的文档,通过学习这份文档,读者可以系统地了解Scala的基础知识和应用,并将其应用于大数据处理和分析中。 ### 回答2: 尚硅谷大数据技术之scala.docx是一篇关于Scala编程语言的技术文档。Scala是一种高级的多范式编程语言,结合了面向对象和函数式编程的特点。它在大数据处理、并发编程和分布式系统方面具有较高的应用价值。 该文档首先介绍了Scala的背景和特点。Scala是一种运行在Java虚拟机上的语言,因此可以无缝地与Java进行交互。Scala支持函数式编程,允许开发人员使用更简洁的代码实现复杂的功能。同时,Scala也支持面向对象编程,并提供了强大的模式匹配功能。 接着,文档介绍了Scala的基本语法和特性。Scala的语法与Java类似,但更加简洁和灵活。Scala支持强类型和类型推导,使得编码更加便捷。Scala还有很多高级特性,如高阶函数、闭包和样例类等,可以极大地提升开发效率。 文档还介绍了Scala大数据处理领域的应用。Scala可以与Apache Spark等大数据处理框架无缝集成,提供了更加高效、灵活和可扩展的编程方式。Scala的函数式编程特性使得并行计算更加容易实现,大幅提高了程序性能。 此外,文档还对Scala的社区资源和学习路径进行了介绍。Scala拥有庞大的开发者社区,有丰富的教程、文档、博客和开源项目可供参考。通过学习Scala,可以获得更广阔的职业发展空间。 总之,尚硅谷大数据技术之scala.docx是一份详细介绍Scala编程语言的技术文档,内容包括了Scala的背景、语法特性、在大数据领域的应用以及学习资源等。这份文档对于想要深入了解和应用Scala的开发人员来说,是一份宝贵的参考资料。 ### 回答3: 尚硅谷大数据技术之Scala.docx是一份关于Scala编程语言的技术文档。Scala是一种支持面向对象和函数式编程的静态类型编程语言,它在大数据领域中广泛应用。 这份文档首先介绍了Scala的基本特点和优势。Scala具有更为丰富的功能和表达能力,可以充分利用现有的Java库和工具。它还拥有高效的并发编程能力,方便开发者在大数据处理中实现高性能和高可扩展性。此外,Scala还支持面向对象和函数式编程的混合使用,使得代码更加简洁和可读。 文档接着介绍Scala大数据处理中的应用场景。Scala与Apache Spark等大数据处理框架紧密结合,可以通过其丰富的函数式编程特性进行大规模数据的处理和分析。Scala还提供了一套强大的集合库,方便进行数据处理和转换。同时,Scala与Java语言的兼容性也使得Java开发者可以无缝切换到Scala环境,提高开发效率。 文档还详细介绍了Scala的语法和特性。包括基本语法、数据类型、函数定义、类和对象等内容。通过简洁的示例代码和详细的解释,帮助读者快速掌握Scala的基本语法和使用方法。 最后,文档提供了一些Scala编程技巧和最佳实践。这些技巧包括优化代码性能、避免常见错误和使用一些高级特性等。这些技巧和实践可以帮助开发者更好地利用Scala进行大数据处理和开发工作。 总之,尚硅谷大数据技术之Scala.docx是一份详细介绍Scala编程语言的技术文档,旨在帮助读者快速掌握Scala并在大数据领域中应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飘然生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值