【Scala】思维导图

思维导图:http://naotu.baidu.com/file/8ac705df572cd2f131aff5f0ed9c4c88?token=871f7d35671c6287

Scala算术运算
math.exp(10)输入输出
输入:StdIn.readLine("请输入")
读文件:Source.fromFile("xx.txt").getLines.mkString
写文件:new PrntWriter("xx.txt").println("haha")包的使用
导入全部:import xx._
引入部分:import xx.{A, B}
导入后重命名:import scala.io.{Source => Src}语法规则
$可以当做字母,例如1. $plus(2)
关键字加``可以避免冲突,如val `yeild` = 1
字符串可以用"""   """包围进行格式化
判断数据类型isInstance[Int]/a.getClass==classOf(Int)
标点:=>匿名函数,<-for循环迭代器,->Map键值对,_占位符(匿名函数参数或导包的通配符)
4种执行方式数据结构
无序的放在scala.collection.mutable包,有序的放在immutable
ArrayBuffer:不定长数组,Tuple 元组有序可存放不同类型
Option 选项表示有可能包含值的容器,Iterator 迭代器可以遍历容器
val a = ListBuffer(1, 2, 3) 判断a.instanceOf(Mutable)字符串
拼接可以不带.,如"你" concate "好"
s插值器、f插值器各种类型、raw插值器保持原型数组Array
定义val arr : Array[Any] = new Array[Any](3)
构造相当于隐式调用Array.apply,或range、tabulate
多维数组可以使用两个for循环、fill或tabulate
操作:slice切片、排序sorted、转换.toBuffer,删除元素dropRight(3)列表List 集合Set 映射Map 元组Tuple 迭代器Iterator 选项Option
判断集合中的值是否存在,getOrElse或isEmpty选择结构
变量 match{ case 1 => xxx}循环结构 异常捕获
catch{case ex : IOException =>xxx}函数定义 匿名函数 高阶函数 类的定义 getter和setter 构造器 单例对象和伴生对象
Object和Class同名,被称为伴生类和伴生对象,其信息可以共享
伴生类和伴生对象在编译完成后会被放在同一个类中
只有一个object叫做单例对象继承和特征
trait特征apply,unapply和update

### 关于 Spark 中 Scala 基础的思维导图 Scala 是一种功能强大且灵活的语言,在大数据处理框架如 Apache Spark 和 Flink 的开发中占据重要地位。对于初学者来说,理解 Scala 的基础知识以及其在 Spark 生态系统中的应用至关重要。 #### 1. **Scala 基础知识** Scala 提供了一种简洁而强大的编程范式,融合了面向对象和函数式编程的特点。以下是 Scala 的一些核心概念[^1]: - 变量声明:`val` 表示不可变变量,`var` 表示可变变量。 - 字符串操作:字符串可以通过 `+` 运算符连接,也可以通过三重引号定义多行字符串。 - 类型推断:Scala 支持类型自动推断,减少冗余代码。 - 函数定义:可以使用匿名函数简化代码逻辑。 ```scala // 定义一个简单的函数 def add(a: Int, b: Int): Int = { a + b } // 使用匿名函数实现加法 val sum = (a: Int, b: Int) => a + b println(sum(3, 5)) // 输出结果为 8 ``` #### 2. **分支表达式的特性** Scala 的分支表达式不仅用于条件判断,还可以返回值。例如,下面的例子展示了如何利用分支表达式比较两个字符串[^2]: ```scala val result = if ("scala".equals("java")) "Equal" else "Not Equal" println(result) // 输出 Not Equal ``` 需要注意的是,尽管 `"=="` 和 `"eq"` 都可用于比较,但它们的行为不同。前者是比较值相等性,后者是比较引用地址是否相同。 #### 3. **Spark 中的数据类型支持** Apache Spark 广泛支持多种数据结构,包括但不限于基本数据类型、元组、列表、映射表等。具体而言,它兼容 Java 和 Scala 数据类型的交互[^3]。这使得开发者能够轻松地将复杂业务逻辑嵌入到分布式计算任务中。 #### 4. **Spark 版本与依赖管理** 为了确保项目顺利运行,了解各个组件之间的版本匹配关系非常重要。例如,在构建基于 Spark 的应用程序时,通常会指定如下依赖项[^4]: | 组件 | 版本 | |------------|--------------| | Spark | spark-3.0.0 | | Hadoop | hadoop-3.2.1 | | HBase | hbase-2.2.5 | | Kafka | kafka_2.12-2.4.1 | | Java | 1.8 | | Scala | 2.12 | 以上配置适用于大多数生产环境下的集群部署方案。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值