首页 > 其他分享 >Spark之Scala

Spark之Scala

时间:2022-11-13 17:35:42浏览次数:50  
标签:Java scala 代码 Scala HelloWorld Spark Hello


Spark之Scala

文章目录

  • ​​Spark之Scala​​
  • ​​什么是Scala:​​
  • ​​Scala简介​​
  • ​​Scala的特点是什么:​​
  • ​​Scala的运行方式:​​
  • ​​介绍三种Scala代码编译 执行的方式:​​
  • ​​**2.** **通过控制台进行编译及执行****scala****文件**​​
  • ​​**3.** **在****IDEA****开发工具中运行**​​
什么是Scala:
Scala简介

Scala语言是集面向对象编程思想与函数式编程思想于一

身的通用编程语言,由Martin Odersky教授及其领导的瑞士

洛桑联邦高等理工学院程序方法实验室团队于2004年对外发

布。Scala的设计吸收借鉴了许多种编程语言的思想。Scala

语言的名称来自于“可伸展的语言”,从写小脚本到建立大

系统的编程任务均可胜任。

Scala运行于Java 虚拟机(Java Virtual Machine,JVM)

上,并兼容现有的Java程序。Scala代码可以调用Java方法,

访问Java成员变量,继承Java类和实现Java接口。在面向对

象方面,Scala是一门非常纯粹的面向对象编程语言,也就是

说,在Scala中,每个值都是对象,每个操作都是方法调用

Scala的特点是什么:
Scala的优势是提供了REPL(Read-Eval-Print Loop,
交互式解释器),因此,在Spark Shell中可进行交互式
编程,即表达式计算完成就会输出结果,而不必等到整
个程序运行完毕,因此可即时查看中间结果,并对程序
进行修改。这样可以在较大程度上提升开发效率。
Scala的运行方式:
Scala代码可以在Spark Shell中运行,其自带Scala解释
器。当然,Scala代码也可以在Scala Shell中直接运行。在
实际开发过程中,为提高开发效率,一般会借助一些IDE
如IDEA、Eclipse等进行Scala程序开发
介绍三种Scala代码编译 执行的方式:
  1. Scala解释器中直接运行代码或使用:paste命
    令运行多行代码
    (1)登录Linux系统或DOS终端,打开命令行并输入
    scala进入Scala解释器。输入代码:
    结果会直接显示在代码下方,输出Hello,world!

(2)在Scala解释器中使用:paste命令,进入paste模式。

将代码编辑完后,按住ctrl+D即可退出paste模式,运行结

果即可在下方显示,如代码 1-1所示。

scala> :paste
// Entering paste mode (ctrl-D to finish)
val str=List("Hello","World")
for(i<-0 t o 1 ) print(str(i))
println()
// Exiting paste mode, now interpreting.
HelloWorld
str: List[String] = List(Hello, World)
另外,在Scala解释器中输入:quit可以退出Scala解释器
2. 通过控制台进行编译及执行scala文件

登录Linux系统,打开命令行终端,选择文件创建路径,在

命令行终端输入vi Demo.scala, 即可在创建路径下自动创建

Demo.scala文件。将代码以应用程序对象的方式写入scala文件,

如代码 1-2所示。

object HelloWorld {
/* 第一个 Scala 程序
* 它将输出 Hello World!
*/
def main(args: Array[String]) {
println("Hello, World!")// 输出 Hello World!
} }

使用scalac命令编译Demo.scala文件,并使用scala命令执行:

命令执行后,会在屏幕上打印出“Hello, World!”。

scalac Demo.scala** //编译Scala文件命令 

**scala HelloWorld** //执行命令

**scala -classpath . HelloWorld** //执行命令

在代码 1-2中,定义了程序的入口main()方法。关于main()

方法的定义,Java和Scala是不同的,在Java中使用静态方法

(public static void main(String[] args)),而Scala中则必须

使用对象方法,本例中,也就是HelloWorld对象中的main()方

法。

在代码 1-2中对象的命名HelloWorld可以不必和文件名称一

致,这里对象名称是HelloWorld,而文件名称是Demo.scala。这

点和Java是不同的,按照Java的命名要求,这里的文件名称就必

须起名为HelloWorld.scala,但是,在Scala中没有这个一致性要

求。另外,执行命令中的HelloWorld为对象名

Scala是区分大小写的。例如小写开头的object和大写开头

的Object是不同的。文件名Demo.scala和demo.scala也是两个

不同的文件

3. 在IDEA开发工具中运行

在IDEA开发工具中下载安装Scala插件,新建Projects–

>Package–>scala.class。

我们就可以在IDEA里面打印我们的第一个scala程序

package Word

package Word

import scala.io.StdIn

object Hello {
def main(args: Array[String]): Unit = {
print("Hello World!")
}


}


标签:Java,scala,代码,Scala,HelloWorld,Spark,Hello
From: https://blog.51cto.com/u_15870497/5847864

相关文章

  • Scala 函数排序
    Scala函数排序文章目录​​Scala函数排序​​​​基于单集合单字段的排序​​​​基于元组多字段的排序​​​​基于类的排序​​​​(2)sortWith的实现方法    排序规......
  • 2022.11.12 C.The Seven-Sparkling-Star Card Game(大模拟)
    ProblemTheSeven-Sparkling-StarCardGame(七星卡牌)游戏是Illumina_矿业无限游戏公司的最新力作。基本游戏规则:对战双方各持\(n\)张卡牌,其中\(n\)是\(7\)的......
  • Scala控制结构和函数、过程、懒值、异常
    1 ifelse表达式scala中没有三目运算符,因为根本不需要。scala中ifelse表达式是有返回值的,如果if或者else返回的类型不一样,就返回Any类型(所有类型的公共超类型)。例如:ifel......
  • Scala模式匹配
    1 switch与default等效的是捕获所有的case_模式。如果没有模式匹配,抛出MatchError,每个case中,不用break语句。可以在match中使用任何类型,而不仅仅是数字。varresult=0;......
  • Scala数据结构
    1 数据结构特点Scala同时支持可变集合和不可变集合,不可变集合从不可变,可以安全的并发访问。两个主要的包:不可变集合:scala.collection.immutable可变集合: scala.collecti......
  • Scala 类
    1 简单类和无参方法类的定义可以通过class关键字实现,如下:packageunit7classDog{privatevarleg=4defshout(content:String){println(content)}def......
  • Scala高阶函数
    1 作为参数的函数函数作为一个变量传入到了另一个函数中,那么该作为参数的函数的类型是:function1,即:(参数类型)=>返回类型defplus(x:Int)=3+xvalresult1=Array(1,......
  • Scala注解
    注解就是标签。标签是用来标记某些代码需要特殊处理的。处理的手段可以在代码运行时操作,也可以在编译期操作。1 什么可以被注解1) 可以为类,方法,字段局部变量,参数,表达式,......
  • Spark3.1.2与Iceberg0.12.1整合-hadoop和hive的catalog,DDL,隐藏分区(按年,月,天,小时),create
    Spark3.1.2与Iceberg0.12.1整合Spark可以操作Iceberg数据湖,这里使用的Iceberg的版本为0.12.1,此版本与Spark2.4版本之上兼容。由于在Spark2.4版本中在操作Iceberg时不支持D......
  • SparkStreaming_Dstream创建
    SparkStreaming原生支持一些不同的数据源。一些“核心”数据源已经被打包到SparkStreaming的Maven工件中,而其他的一些则可以通过spark-streaming-kafka等附加工件获......