文档章节

【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第1小节(1)

Spark亚太研究院
 Spark亚太研究院
发布于 2014/11/22 22:00
字数 665
阅读 307
收藏 3

1,在命令行和Scala IDE for Eclipse中动手体验Scala

 

Scala一门基于JVM的面向对象和函数式编程相结合的静态语言,安装和运行Scala首先需要Java虚拟环境,直接到官方网站下载和安装Java即可:

http://www.oracle.com/technetwork/java/javase/downloads/index.html 

因为Spark的最新的 1.0.2版本支持的是Scala 2.10.X版本,而Scala 2.10.X是不支持Java 8的,所以下载的时候需要下载Java 6或者 Java 7的版本(需要注意系统的版本,家林的系统是Window 7的64位的版本),安装并配置好之后需要在命令行下验证一下:

接下来安装Scala 2.10.4,下载地址是:

http://www.scala-lang.org/download/2.10.4.html 

下载下来之后点击安装即可,安装之后需要把scala的bin目录配置到环境变量path中,安装配置完成后用命令行验证一下:

进入Scala命令行:

在Scala中定义一个常量是使用val:

如果此时相对name的值进行修改就会报错:

使用var声明一个变量:

此时修改hobby这个变量:

可以发现我们在定义常量和变量的时候并未定义其类型,但是命令终端却显示出了类型其类型,这是Scala类型的自我推到能力,Scala可以根据变量和常量值的类型来推到变量和常量本身的类型。

当然,你可以显示的指定类型:

接下来下载Scala IDE for Eclipse,看一下在Eclipse中如何写Scala代码,下载Scala2.10.4的版本即可,下载地址如下:

http://scala-ide.org/download/sdk.html 

下载后直接解压启动即可。

创建一个Scala项目:

在src下创建一个scala的包:

接下来创建一个名称为“HelloScala”的Scala类:

接下来写我们的main函数,需要注意的是在Scala中main函数需要存在于object对象中,所有我们需要一个object HelloScala并在其中编写main方法:

编写完毕之后选择Run as为“Scala Application”即可,运行结果如下所示:

接下来使用def定义一个函数“hello”:

Scala中有两点需要注意:

1, 函数体的最后一行的值就是整个函数的返回值;

2,类型的声明是位于变量或者函数或者类的后面的;

把函数的执行结果打印出来:

执行改程序:

下面我们看另外一个方法的定义、使用和执行:

 

© 著作权归作者所有

Spark亚太研究院
粉丝 76
博文 73
码字总数 35236
作品 0
朝阳
技术主管
私信 提问
Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈与熟练的掌握Scala语言【大数据Spark

Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈 大数据的概念与应用,正随着智能手机、平板电脑的快速流行而日渐普及,大数据中图的并行化处理一直是一个非常热门的话题。图计算正在被广泛地...

Spark亚太研究院
2014/08/29
1.6K
0
【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第五步)(9)

第二步:构造分布式的Spark1.0.2集群 1,下载Scala 2.10.4,具体下载地址: http://www.scala-lang.org/download/2.10.4.html 在Ubuntu机器上Scala会帮助我们自动选择“scala-2.10.4.tgz”进行...

Spark亚太研究院
2014/11/17
255
0
OSC 第 65 期高手问答 — Spark 企业级实战

OSCHINA 本期高手问答(3月23日-3月29日)我们请来了 @王家林 (王家林)为大家解答关于 Spark 开发方面的问题。 王 家林,Spark 亚太研究院院长和首席专家,当今云计算领域最火爆的技术Docke...

叶秀兰
2015/03/23
6.4K
22
【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第五步)(13)

从控制台可以看到我们的程序成功在集群上运行: Detail for stage 1: Detail for Stage 0: 查看一下Executors的信息: 上述信息表明程序成功在Spark集群上运行。 第四步:基于IDEA构建Spark...

Spark亚太研究院
2014/11/20
289
0
【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第1节②

三、你为什么需要Spark; 你需要Spark的十大理由: 1,Spark是可以革命Hadoop的目前唯一替代者,能够做Hadoop做的一切事情,同时速度比Hadoop快了100倍以上: Logistic regression in Hadoo...

Spark亚太研究院
2014/12/16
449
2

没有更多内容

加载失败,请刷新页面

加载更多

ZhaoWei-2020-01-29

并发相关 1、并发编程三要素? (1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。 (2)可见性 可见性指多个线程操作一个共...

SuSheePark
18分钟前
43
0
用于除法时,“ /”和“ //”之间有什么区别?

将一个使用在另一个上是否有好处? 在Python 2中,它们似乎都返回相同的结果: >>> 6/32>>> 6//32 #1楼 它有助于阐明Python 2.x的行, /既不是下位划分也不是真正的划分。 当前接受的答案...

技术盛宴
18分钟前
41
0
微信小程序结构说明

一、微信小程序结构: 小程序框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生App体验服务 小程序框架提供了自己的视图层描述语言wxml和wxss以及JavaScript,并在视...

冥焱
22分钟前
48
0
AspectJ 切点指示器-03-execution

execution() 匹配满足某一匹配条件的目标方法的连接点 各个类最终结构图如下: 1、Factory package com.test.aspectj.expression;/** * 工厂接口 */public interface Factory {...

moon888
58分钟前
72
0
“ STL”和“ C ++标准库”有什么区别?

有人引起了我的注意, 这篇文章声称(我的意思是) STL术语被误用于指代整个C ++标准库,而不是指从SGI STL中获得的部分。 (...)它指的是“ STL”,尽管实际上仍然很少有人使用STL(它是S...

javail
今天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部