好程序员大数据学习路线分享Scala系列之基础篇

41 篇文章 0 订阅
6 篇文章 0 订阅

好程序员大数据学习路线分享Scala系列之基础篇先了解Scala

1.1 什么是 Scala

Scala 是 Scalable Language 的简写,是一门多范式的编程语言。

Scala设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。

函数式编程两种理念:就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。

函数式编程的一个特点就是,函数也是值,同允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

1.2 Scala特点

Scala 是面向对象的

Scala是一个纯面向对象的语言,所有的值都是对象,类和对象行为用类和特质来描述.

Scala 是函数式的

Scala中函数是高等公民,所有函数都是值.

Scala是静态类型的

Scala 是可扩展的

1.3 为什么要学Scala

1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。

2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。

3.能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。

 

2 环境准备

2.1 JDK安装

因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK

2.2 Scala安装

下载Scala然后解压Scala到指定目录

tar -zxvf scala-2.10.6.tgz -C /usr/java

配置环境变量,将scala加入到PATH中

vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_45

export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.10.6/bin

2.3. Scala开发工具安装

目前Scala的开发工具主要有两种:Eclipse和IDEA,这两个开发工具都有相应的Scala插件,如果使用Eclipse,直接到Scala官网下载即可。

 

由于IDEA的Scala插件更优秀,大多数Scala程序员都选择IDEA,可以到下载社区免费版,点击下一步安装即可,安装时如果有网络可以选择在线安装Scala插件。这里我们使用离线安装Scala插件:

 

1.安装IDEA,点击下一步即可。由于我们离线安装插件,所以点击Skip All and Set Defaul

2.下载IEDA的scala插件

3.安装Scala插件:File -> settings -> Plugins -> Install plugin from disk -> 选择Scala插件 -> OK -> 重启IDEA

3. Scala基础

3.1. 值和变量

使用var 声明一个变量。

  • scala语言是强类型语言。
  • var修饰的变量,内容和引用都可变

使用val声明一个常量或值

  • val修饰的变量是不可变的,注意不可变的不是内容,而是引用;
  • val修饰的变量,相当于Java中final修饰的变量;
  • 只有val修饰的变量才能被lazy修饰;使用lazy定义变量后,只有在调用该变量时才会实例化这个变量的值。而且惰性变量只能是不可变变量;

//变量定义方式
var a:int = 1
var aa = 1
val aaa:Int = 3
val aaaa = 4
lazy val aaaaa = 4

官方推荐使用val。

2.val和var区别示意:

可以使用数组,更容易懂

class A(n: Int) {
 var value = n
}

class B(n: Int) {
 val value = new A(n)
}

object Test {
 def main(args: Array[String]) {
 val x = new B(5)
 x = new B(6) // 错误?
 x.value = new A(6) // 错误?
 x.value.value = 6 // 正常
 }
}

3.lazy

类似方法,先声明,后调用

4.val or var

在val和var均可的条件下,官方推荐使用val

3.2. 常用类型

Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float、Double和一个Boolean类型,

和Java不同的是 ,Scala没有基本类型与包装类型之分,这些类型都是类,有自己的属性和方法。

相当于Java的包装类;

1.toString()

1.to (10)

scala类型层级关系:

scala中所有的值都有类型,包括数值和函数.

scala 类型转换:

    val x: Long = 987654321
    val y: Float = x  // 9.8765434E8 (note that some precision is lost in this case)

    val face: Char = '☺'
    val number: Int = face  // 9786

3.3. 操作符

Scala中没有操作符,只是以操作符的格式去进行方法调用。

//数学运算符
+、-、* 、/、%
//关系操作符
> < >= <= !
//逻辑操作符
&& ||
//位操作符
| & ^ ~
//比较对象是否相等
== !=

注意:

a + b 等价于 a.+(b)

Scala没有++,-- 可以用+=,-=代替

操作符都是方法的重载,是方法的调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个开源的大数据框架,它可以帮助处理和存储大规模数据集。作为一名好的程序员,在大数据领域掌握Hadoop是非常重要的。 首先,好的程序员需要了解Hadoop的基本概念和架构。Hadoop采用分布式文件系统和分布式计算模型,可以将数据存储在多个节点上进行并行处理。程序员需要了解Hadoop的组成,如HDFS(分布式文件系统),YARN(资源管理器)和 MapReduce(计算框架)等,以便能够正确地配置和管理Hadoop集群。 其次,好的程序员需要熟练掌握Hadoop的编程模型和编程语言。Hadoop使用Java作为主要编程语言,程序员需要熟悉Java并掌握Hadoop相关的API。此外,Hadoop还支持其他编程语言如Python和Scala程序员可以根据自己的需求选择合适的语言进行开发。 另外,好的程序员需要了解Hadoop生态系统中的其他工具和技术。Hadoop生态系统包含了许多与Hadoop配套的工具,如Hive、Pig、Spark等。这些工具可以帮助程序员更方便地进行大数据处理和分析。对于好的程序员来说,了解并熟练使用这些工具是非常必要的。 最后,好的程序员需要具备解决实际问题和优化性能的能力。Hadoop是一个非常强大的工具,但是在处理大规模数据时可能会面临一些挑战,如数据倾斜、性能瓶颈等。好的程序员需要能够分析和解决这些问题,并进行性能优化,以确保Hadoop集群的稳定运行。 总之,作为好的程序员,在大数据领域掌握Hadoop是非常重要的。通过了解Hadoop的概念和架构、熟练掌握Hadoop的编程模型和编程语言、了解Hadoop生态系统中的其他工具和技术,以及具备解决实际问题和优化性能的能力,程序员可以更好地利用Hadoop进行大数据处理和分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值