当前位置: 首页 > news >正文

Spark-Scala语言实战(1)

在之前的文章中,我们学习了如何在Linux安装Spark以及Scala,想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

Spark及Scala的安装icon-default.png?t=N7T8https://blog.csdn.net/qq_49513817/article/details/136499998?spm=1001.2014.3001.5501

这篇文章,我会从Scala基础开始,带着大家一起实战,一起学习。为了方便,我这边用的是win的Scala。

目录

一、win版Scala下载配置

1.Scala下载

2.环境变量配置

 3.启动Scala

二、常量、变量、简单函数

1.定义常量

2.定义变量

3.定义数组

(1  数组

(2  数组操作方法

(3  创建区间数组

三、九九乘法表 

拓展

一、Scala数据类型

基本数据类型

复合数据类型

二、Scala运算符


一、win版Scala下载配置

1.Scala下载

Scala官网地址icon-default.png?t=N7T8https://www.scala-lang.org/download/all.html

我这边选用的版本是2.12.15,大家按需下载。

2.环境变量配置

 3.启动Scala

桌面win+r,输入cmd

 输入scala

出现Scala即成功

二、常量、变量

1.定义常量

 在Scala语言中,使用val关键字来定义一个常量(常量:常量是指一旦赋值后就不能再被修改的量)。

可以看到我们使用了val来定义一个常量,其中x1到x4是我们的常量名称,后面是我给它们赋的值,其中,值的数据类型是Scala自此定义的,因此我们也知道了Scala的特点之一(如果不指定变量的类型,Scala会自动生成)。

现在,我们来试试自己定义数据类型

现在,我们定义了一个常量x5,它的值是int类型的666,细心的朋友可能看出来了,我上面有个报错,那是因为Scala语言有严格的书写规范,在这里,Int的i要大写。

val x1=1val x2=1.5val x3=x1+x2val x4=1+1.5val x5:Int=666

2.定义变量

在Scala语言中,使用var关键字来定义一个变量。(变量:变量是用于存储数据的一种引用,可以存储任何类型的数据,如整数、浮点数、字符串、布尔值等,在存储过程中可以发生改变的量。)

和上面的方法很像,就是改变了一个字母而已,快来试试吧

var r1=8var r2=88.8var r3=88.8+8var r4=r1+r2

3.定义数组

(1  数组

在Scala中,定义数组主要有两种方式

第一种:

可以看到,我们定义了两个数组。一个名为sz1,包含了1到5,另一个名为sz2,包含了两个字符串,一个“Hello”,一个“World”

第二种:

使用这种方式,Scala会现在里面赋默认值Null值,也就是空值,再随后并随后给它的三个元素分别赋了值,现在来试试吧

val sz1 = Array(1, 2, 3, 4, 5)val sz2 = Array("Hello", "World")val sz3: Array[String] = new Array[String](3)sz3(0) = "haha"sz3(1) = "hehe"sz3(2) = "heihei"

(2  数组操作方法

操作描述示例
创建数组使用Array类创建数组val arr = Array(1, 2, 3)
数组长度使用length或size属性获取数组长度val length = arr.length
最大值使用max方法获取数组中的最大值val maxVal = arr.max
最小值使用min方法获取数组中的最小值val minVal = arr.min
排序使用sorted方法对数组进行升序排序val sortedArr = arr.sorted
数组连接使用++操作符连接两个数组val concatenated = arr1 ++ arr2
转换为列表使用toList方法将数组转换为列表val list = arr.toList
转换为集合使用toSet方法将数组转换为集合(去除重复元素)val set = arr.toSet
查找元素使用exists方法检查数组是否包含元素xarr.exists(_ == "x")

(3  创建区间数组

创建区间数组,只需要使用range()函数,但再此之前,我们先要导入包。

这样,我们就得到了一个1到10,每隔2一次的区间数组 

import Array._val sz4 = range(1,10,2)

三、九九乘法表 

用Scala完成一个九九乘法表的实现。

其中

object jjcfb 定义一个名为jjcfb的类函数

def nb() = 定义名为nb的函数

for (i <- 1 to 9)

for (j <- 1 to i)  嵌套遍历循环

print(s"$j*$i=${i*j}\t")  输出i*j的值,并对齐输出\t制表符

 println()   //每行结束后换行

 object jjcfb {def nb() = {for (i <- 1 to 9) {for (j <- 1 to i) {print(s"$j*$i=${i*j}\t")}println()}}}

拓展

一、Scala数据类型

基本数据类型

  • Byte: 8 位有符号整数
  • Short: 16 位有符号整数
  • Int: 32 位有符号整数
  • Long: 64 位有符号整数
  • Float: 32 位 IEEE 754 单精度浮点数
  • Double: 64 位 IEEE 754 双精度浮点数
  • Char: 16 位 Unicode 字符
  • Boolean: 逻辑值,可以是 true 或 false
  • Unit: 表示没有具体的值,类似于 Java 中的 void(但 Unit 有一个唯一的实例值 ()
  • Nothing: 是所有其他类型的子类型,没有实例
  • Nullnull 值的类型,是 Nothing 的一个实例

复合数据类型

  • 元组(Tuples): 元组是不同类型值的集合。例如,(1, "hello") 是一个包含整数和字符串的二元组。
  • 数组(Arrays): 类似于 Java 中的数组,用于存储同类型的对象集合。
  • 列表(Lists): 可变长度的有序元素集合。Scala 中的列表是不可变的,但可以通过操作生成新的列表。
  • 集合(Sets): 无序且不包含重复元素的集合。
  • 映射(Maps): 存储键值对的集合,其中键是唯一的。
  • 字符串(Strings): 字符序列。Scala 中的字符串是不可变的。

二、Scala运算符

运算符描述示例
算术运算符用于执行基本的数学运算
+加法val peng = 5 + 3
-减法val peng = 5 - 3
*乘法val peng = 5 * 3
/除法val peng = 5 / 3
%取模(求余数)val peng = 5 % 3
关系运算符(比较运算符)用于比较两个值
==等于val peng = 5 == 3
!=不等于val peng = 5 != 3
>大于val peng = 5 > 3
<小于val peng = 5 < 3
>=大于或等于val peng = 5 >= 3
<=小于或等于val peng = 5 <= 3
逻辑运算符用于组合或否定关系表达式
&&逻辑与val peng = (5 > 3) && (2 < 4)
!逻辑非val peng = !(5 < 3)
赋值运算符用于将值赋给变量
=赋值var x = 5
+=加法赋值var x = 3; x += 2
-=减法赋值var x = 5; x -= 3
*=乘法赋值var x = 2; x *= 3
/=除法赋值var x = 10; x /= 2
位运算符对整数的位进行操作
&位与val peng = 5 & 3
位或
^位异或val peng = 5 ^ 3
~位非val peng = ~5
<<左移val peng = 5 << 1
>>右移val peng = 5 >> 1

http://www.lryc.cn/news/321855.html

相关文章:

  • NBlog Java定时任务-备份MySQL数据
  • 微信小程序项目实战遇到的问题
  • 网络原理(3)——TCP协议
  • nginx多级代理配置获取客户端真实ip
  • Django框架的全面指南:从入门到高级【第128篇—Django框架】
  • C++类和对象基础
  • 消息队列常见的两种消费模式
  • php的伪协议详解
  • 【研发日记】Matlab/Simulink技能解锁(四)——在Simulink Debugger窗口调试
  • 沪深主板打板胜率统计
  • Python中的列表推导式(List Comprehension)
  • MusicHiFi: Fast High-Fidelity Stereo Vocoding
  • 完美解决 RabbitMQ可视化界面Overview不显示折线图和队列不显示Messages
  • matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面
  • Linux-docker安装数据库mysql
  • 网工内推 | 七险一金,上市公司招信息安全工程师,大牛带队
  • 04.组件的组成和组件间通信
  • 【Sql Server】通过Sql语句批量处理数据,使用变量且遍历数据进行逻辑处理
  • MySQL中group_concat()用法
  • 栈队列数组试题(四)——数组和特殊矩阵
  • 数据结构的概念大合集01(含数据结构的基本定义,算法及其描述)
  • .NET高级面试指南专题十七【 策略模式模式介绍,允许在运行时选择算法的行为】
  • 突飞猛进,智能饮品机器人如何助力实体经济?
  • AI:150-基于深度学习的医学数据挖掘与病症关联发现
  • c语言:最大公约数
  • 12 对称加密AES和非对称加密RSA
  • Vue2(二):计算属性、监视属性、二者的区别
  • CTF题型 SSTI(2) Flask-SSTI典型题巩固
  • 计算机设计大赛 题目: 基于深度学习的疲劳驾驶检测 深度学习
  • 小字辈[天梯赛]