大数据学习之Scala语言基本语法学习36

一:scala简介

官网:https://www.scala-lang.org/

Scala语言很强大,集成了面向对象和函数式编程的特点。

运行在JVM(jdk)。

大数据中为什么学习scala?

spark是scala语言编写。

python写spark 挺好的

java写spark 很糟糕(代码实在是太多了)

scala写spark 很完美

二:scala特点

1)优雅

框架设计中第一个要考虑的问题就是API是否优雅。

精简的封装。

代码精简(少)。

2)速度快

scala语言表达能力强。

一行代码=多行java代码,开发速度快。

3)完美融合hadoop生态

scala是静态编译,表达能力强并且代码量少。

三:安装Scala

1)下载

2)解压

3)配置环境变量(我是win10系统的,简单的安装,没有弄什么SACLA_HOME那些花里胡哨的东西。直接添加Scala的

bin目录到Path中就行了)

SCALA_HOME=

path

四:Scala基础语法

1)Scala程序的开始(编译器用的是Idea。安装一个Scala的插件就可以用了)

Helloworld

2)Scala的数据类型

Scala与java一样,有8中数值类型:

Byte/Char/Short/Int/Long/Float/Double/Boolean/

和Unit类型(void)

注意:scala中无包装类型。

Unit:表示无值,用于不返回任何结果的方法的结果类型。

3)Scala定义变量

两个关键字:val var

val:定义变量值不可变

var:定义的变量值是可变的

scala编译器会自动的推断类型!

指定类型: val str:String = "dawn"

注意:类型要保持一致

Unit = ():()相当于什么都没有用()表示。

4)条件表达式

if:判断(和java差不多)

val y = if(x>0) 1 else 2

Any:包含Anyval和AnyRef

Anyval:包含scala所有类型

AnyRef:Scala classes与Java Classes

Any相当于java的Object

val k = if(x<0) 0 else if(x>=1) 1 else -1

if和else if:多个条件的判断,符合条件看左侧,不符合条件看右侧

5)块表达式

在scala中{}包含一系列表达式,块中的最后一个表达式的值就是块的值

6)循环

Scala拥有与Java和C++相同的while和do循环

Scala中,可以使用for和foreach进行迭代

使用for循环案例:

注意:

(*) <-  表示Scala中的generator,即:提取符

(*)第三种写法是第二种写法的简写

在for循环中,还可以使用yield关键字来产生一个新的集合

在上面的案例中,我们将list集合中的每个元素转换成了大写,并且使用yield关键字生成了一个新的集合。

使用while循环:注意使用小括号,不是中括号

使用do ... while循环

使用foreach进行迭代

注意:在上面的例子中,foreach接收了另一个函数(println)作为值

源码:

package dawn.day01
/**
  * @author Dawn
  * 2019年6月11日17:01:23
  * @version 1.0
  * scala基本语法基础
  */
object Demo1 {
  def main(args: Array[String]): Unit = {

    //定义一个集合
    var list =List("dawn","Anlis","xiaomei")

    var i=0
    println("**********************第一种循环for **********************************")
    for(s <- list){
      println(s)
    }

    println("**********************第二种循环while **********************************")
    while(i<list.length){
      println(list(i))
      i+=1
    }

    println("**********************第三种循环do...while **********************************")
    i=0
    do{
      println(list(i))
      i+=1
    }while(i<list.length)

    println("**********************第四种循环foreach(println) **********************************")
    list.foreach(println)

    println("测试yield方法")
    //测试yield
   var newList=for{
     s <-list
     if s.length<=5
   }yield (s)

    //toBuffer相当一java中toString
    println(newList.toBuffer)
  }
}

  

7)方法定义

Scala中 + - * / % 的作用和Java一样,但是特别的是,这些操作符实际上是方

法。个人觉得scala中所有定义的变量都是对象

1 to 10

1.to(10)

定义一个方法:

def m1(a:Int,b:Int):Int = {

a + b

}

def:定义方法的关键字

m1:方法名

a:参数列表

b:参数列表

Int:返回值类型

a + b:函数体

原文地址:https://www.cnblogs.com/hidamowang/p/11006322.html

时间: 2024-10-02 17:35:34

大数据学习之Scala语言基本语法学习36的相关文章

学习大数据要掌握哪些语言?需要学习哪些内容?

大数据是近五年兴起的行业,发展迅速,很多技术经过这些年的迭代也变得比较成熟了,同时新的东西也不断涌现,想要保持自己竞争力的唯一办法就是不断学习.但是,大数据需要学习什么?01 思维导图下面的是我之前整理的一张思维导图,内容分成几大块,包括了分布式计算与查询,分布式调度与管理,持久化存储,大数据常用的编程语言等等内容,每个大类下有很多的开源工具.创一个小群,供大家学习交流聊天如果有对学大数据方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学大数据能够持之以恒

大数据到底能做什么?需要学习哪些知识?

相信很多大数据的初学者或者想转行大数据开发的朋友最关注的问题就是大数据开发到底可以做什么. 什么是大数据? ?"大数据"这个词频繁的出现在媒体是2007年之后的事了.尽管已经过去了10多年的时间,但是大家对它的理解并不统一,甚至有时候会对它有误解,比如很多人将"大数据"跟"大规模数据"混为一谈. 要想知道大数据能做什么,我们得首先搞清楚到底什么是大数据,它有哪些特征. ?大数据最明显的特征就是体量大,但是数据仅仅是体量大,并不能算是大数据.比如一

王家林亲授《DT大数据梦工厂》大数据实战视频 Scala 深入浅出实战经典 - 第71讲

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-71讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群 DT大数据梦工厂① :462923555 DT大数据梦工厂②:437123764 DT大数据梦工厂③

大数据下基于Tensorflow框架的深度学习示例教程

近几年,信息时代的快速发展产生了海量数据,诞生了无数前沿的大数据技术与应用.在当今大数据时代的产业界,商业决策日益基于数据的分析作出.当数据膨胀到一定规模时,基于机器学习对海量复杂数据的分析更能产生较好的价值,而深度学习在大数据场景下更能揭示数据内部的逻辑关系.本文就以大数据作为场景,通过自底向上的教程详述在大数据架构体系中如何应用深度学习这一技术.大数据架构中采用的是hadoop系统以及Kerberos安全认证,深度学习采用的是分布式的Tensorflow架构,hadoop解决了大数据的存储问

大数据、人工智能、机器学习、深度学习,这些到底在说什么?

1,大数据.人工智能.机器学习.深度学习的关系. 大数据,或者说大数据分析平台,更具体一点就是大数据分析PaaS平台,其实是一种针对需要处理海量数据统计分析的PaaS云平台. 大数据学习可以加群:199427210 如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入. 人工智能,是要让机器能够像人类一样具有感知.观察的能力,并且可以做到理解和

好程序员大数据教程分享Scala系列之Option_偏函数_String

好程序员大数据教程分享Scala系列之Option_偏函数_StringOption类型在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None).Some包装了某个值,None表示没有值. object OptionDemo {def main(args: Array[String]) {val map = Map("a" -> 1, "b" -> 2)val v = map.get("b

好程序员大数据教程分享Scala系列之模式匹配和样例类

好程序员大数据教程分享Scala系列之模式匹配和样例类1.样例类在Scala中样例类是一中特殊的类,样例类是不可变的,可以通过值进行比较,可用于模式匹配.定义一个样例类:1.构造器中每一个参数都是val,除非显示地声明为var 2.伴生对象提供apply ,让你不使用new关键字就能构造出相应的对象case class Point(x: Int, y: Int)创建样例类对象:val point = Point(1, 2)val anotherPoint = Point(1, 2)val yet

DT大数据梦工厂-Scala学习笔记(1):Scala开发环境搭建和HelloWorld解析

一.scala是函数式编程和面向对象编程结合的语言,这两种编程的特点分别是什么? 答:函数式编程擅长数值的计算:面向对象编程特别适合于大型工程或项目的组织,以及团队的分工协作. 二.Scala的特点 Scala结构优雅.计算精致.富有表现力 三.scala的安装需要什么资源? Java,推荐安装Java8(Java7也可以) 支持scala 2.10.*以上(可以安装2.10.4,http://scala-lang.org/download) 四.设置环境变量(系统变量): (1)JAVA_HO

学习大数据需要掌握的知识,需要学习的数据技术

大数据的发展历程总体上可以划分为三个重要阶段,萌芽期.成熟期和大规模应用期,20世纪90年至21世纪初,为萌芽期,随着,一批商业智能工具和知识管理技术的开始和应用,度过了数据萌芽,21世纪前十年则为成熟期,主要标志为,大数据解决方案逐渐走向成熟,形成了并行计算与分布式系统两大核心技,谷歌的GFS和MapReduce等大数据技术受到追捧,Hadoop平台开始大行期道,2010年以后,为大规模应用期,标志为,数据应用***各行各业,数据驱动决策,信息社会智能化程度快速提高. 数据时代的到来,也推动了