spark第二讲scala简介(代码片段)

千锋-Arther 千锋-Arther     2022-11-30     644

关键词:

一. Scala 简介

        Scala 是 Scalable Language 的简写,是一门多范式的编程语言,由联邦理工学院洛桑(EPFL)的 Martin Odersky 2001年基于 Funnel 的工作开始设计,设计初衷是实现可伸缩的语言,集成面向对象编程函数式编程的各种特性。因此 Scala 是一种纯面向对象的语言,每个值都是对象。同时 Scala 也是一种函数式语言,其函数也能当成值来使用。由于 Scala 整合了面向对象语言和函数式编程的特性,Scala 相对于 JavaCC++ 等其他语言更加简洁。

        Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Java 类库。Scala 一开始就打算基于 Java 的生态系统发展自身,而这令 Scala 受益匪浅。

“If I were to pick a language to use today other than Java, it would be Scala.”  

--  James Gosling 

二. Scala 特性

  • 面向对象:由于面向对象的诸多特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护和扩展。
  • 函数式编程:把函数当变量用,关注于描述问题而不是怎么实现,这样可以让代码更易读。
  • 静态类型:编译时就能发现类型不匹配的错误,编辑器可以帮助我们提前避免程序在运行期间有可能发生的一些错误。如果在程序中明确地规定了数据类型,编译器还可以针对这些信息对程序进行一些优化工作,提高程序执行速度。
  • 速度快:Scala 语言表达能力强,一行代码抵得上 Java 多行,开发速度快;Scala 是静态编译的,所以和 JRuby,Groovy 比起来速度会快很多。
  • 能融合到 Hadoop 生态圈:Hadoop 现在是大数据事实标准,Spark 的出现并不是要取代 Hadoop,而是要完善 Hadoop 生态。
  • 优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API 是否优雅直接影响用户体验。

三.  Scala 使用

  • 交互式:开始学习 Scala 最简单的方法就是使用 Scala 交互式解释器(REPL),它是编写Scala 表达式和程序的交互式 shell,交互式编程不需要创建脚本文件,可以通过 scala 命令调用(退出 :quit)。

  • 脚本形式:创建后缀为 scala 的文件来执行代码。
    vi HelloWorld.scala
    
            object HelloWorld 
                    def main(args: Array[String])
                            print("Hellow World!");
                    
            
    
    scalac HelloWorld.scala   # 编译
    scala HelloWorld   # 运行

四. 注意事项

  • 命名:

        可以由字母、数字、符号(_ $ + : < > ?等)组成【例:unary_+】;

        以字母和下划线开头;

        区分大小写;

        类名首字母大写,变量名、方法名首字母小写;

        驼峰式命名;

  • 程序文件名应该与对象名称相同

        新版本取消这种限制,但是建议保留

  • Scala 程序的 main() 方法为入口方法

        def main(args: Array[String]) 

  • 单行代码可不用分号(;)结束
  • 定义包(package):

  •  引用(import): 

五. 关键字

六. 注释(和 Java 一样)

scala简介及基础语法(代码片段)

一、scala简介官网:https://www.scala-lang.org/Scala语言很强大,集成了面向对象和函数式编程的特点。运行在JVM(jdk)。大数据中为什么学习scala?spark是scala语言编写。python写spark挺好的java写spark很糟糕(代码实在是太多了)scala写spark很... 查看详情

spark基础学习笔记08:scala简介与安装(代码片段)

文章目录零、本讲学习目标一、Scala简介(一)Scala概述(二)函数式编程(三)Scala特性1、一切都是对象2、一切都是函数3、一切都是表达式(四)在线运行Scala二、Windows上安装Scala(一)... 查看详情

spring繁华的aop王国---第二讲(代码片段)

Spring繁华的AOP王国---第二讲SpringAOP的织入如何与ProxyFactory打交道1.基于接口的代理2.基于类的代理3.Introduction的织入看清ProxyFactory的本质ProxyConfigAdvisedAdvisedSupportProxyFactory,AopProxy,AdvisedSupport与ProxyFactory的关系小结容器中的织入器---P... 查看详情

spark管理与开发(代码片段)

...一篇:Scala编程语言=========一、Scala语言基础1、Scala语言简介Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。它也能运行于C... 查看详情

vio第二讲_allen方差工具(代码片段)

1,首先,安装ceres依赖项,见高博14讲116页,然后下载编译安装ceres:gitclonehttps://github.com/ceres-solver/ceres-solvercdceresmkdirbuildcdbuildcmake..makesudomakeinstall2,下载编译cd~/catkin_ws/srcgitclonehttps://github.com/gaowenl 查看详情

pc逆向之代码还原技术,第六讲汇编中除法代码还原以及原理第二讲,被除数是正数除数非2的幂(代码片段)

目录一丶简介二丶代码还原讲解1.被除数无符号除数非2的幂2.被除数无符号除数为特例7三丶代码还原总结一丶简介上一篇博客说的除2的幂.如果被除数是有符号的,那么会进行调整,并使用位操作进行优化本片博客专门讲解除数不... 查看详情

通过python扩展sparkmllib算法包(e.g.基于spark使用孤立森林进行异常检测)(代码片段)

...scala利用base64编码实现scala调用python的复杂传参base64编码简介实现scala传递嵌套json【包含python代码】给python并执行使用python对字符串代码参数运行的封装类基于scala利用base64编码实现scala调用python的复杂传参base64编码简介实现scala... 查看详情

十sparkmllib的scala示例(代码片段)

简介spark MLlib官网:http://spark.apache.org/docs/latest/ml-guide.htmlmllib是spark core之上的算法库,包含了丰富的机器学习的一系列算法。你可以通过简单的API来构建算法模型,然后利用模型来进行预测分析推荐之类的。它包含了一... 查看详情

第二讲:域名购买与备案(代码片段)

 选购好云主机之后,接下来需要考虑购买域名。在第一讲:个人建站云服务器选择中,小编有介绍过,如果你想进行微信小程序开发,必须要使用经过ICP备案的域名,所以购买域名显得格外重要。域名选... 查看详情

01-spark简介spark部署方式spark运行方式(代码片段)

1、定义  Spark是由Scala编写的一个实时计算系统。  Spark的API包括Java、Python、R、Scala.2、功能  SparkCore:        ①将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为... 查看详情

node.js第二讲笔记(代码片段)

大家好,欢迎关注微信公众号:雄雄的小课堂package包包结构包其实就是一个压缩文件,解压之后还原为目录,符合规范的目录,应该包含如下文件:package.json:描述文件bin:可执行的二进制文件lib:... 查看详情

spark操作hive方式(scala)(代码片段)

...diagbot.ord_lis_trendlimit2")while(query.next())println(query.getString(1))第二种方式:objectSparkOperaterHivevalsparkConf:SparkConf=newSparkConf().setAppName(SparkOperaterHive.getClass.getSimpleName)valsparkSession:SparkSession=SparkSession.builder().config(sparkConf).enableHiveSupp 查看详情

javascriptlepton#spark#scala(代码片段)

查看详情

web自动化测试-第二讲:页面元素定位操作(代码片段)

一、页面元素操作web自动化测试其实就是通过模拟手工测试,我们现在要通过代码来实现测试,首先我们要知道要操作的对象在哪?然后再对其页面元素对象做什么样的操作?也就引出下面两个概念:    1... 查看详情

c#结构化编程基础(金老师编程课第二讲)(代码片段)

变量(variable)和数据类型(DataType)变量就是一块内存地址的别名(利用变量名找到对应的一块虚拟内存),不直接使用内存地址的编码,因为不同的计算机硬件或者计算机操作系统存取数据的方式不同。声明变量即为开设一个虚... 查看详情

第二讲:如何让点亮的发光管进行闪烁(代码片段)

打开Keil。像之前讲的一样,建好工程、建好程序文件、然后我们直接进入程序部分这是上次的程序:这个程序只是让灯亮了,但这次我们需要的是闪烁,所以光是这样是不够的。我们需要的是亮和灭这样才能看出闪烁... 查看详情

notes20180310:string第二讲_string的声明与创建(代码片段)

1 字符串的声明与创建  学习String的第一步就是创建(声明)字符串,我们在这里之所以分为创建和声明是因为String是一个很特殊的类,它的对象产生在五种创建对象之外,还有另外一种方式,下面我们就来详细了解一下.1.1 声... 查看详情

机器学习编译入门课程学习笔记第二讲张量程序抽象(代码片段)

  本节课的slides链接如下:https://mlc.ai/summer22-zh/slides/2-TensorProgram.pdf;notes链接如下:https://mlc.ai/zh/chapter_tensor_program/。文章目录1.本节课内容大纲2.元张量函数3.张量程序抽象3.1为什么需要进行张量程序抽象3.2常见的... 查看详情