(二)Scala从入门到项目实战(Flink、Spark、Kafka)——Scala入门及基本语法

这篇博客介绍了Scala的基础知识,包括如何创建Scala工程、包和HelloWorld程序,深入讲解了数据类型、值类型与引用类型之间的转换,以及变量、常量的声明。此外,还探讨了分支、循环结构如if...else...、for循环、while和do...while的用法,为使用Scala进行大数据项目(如Flink、Spark、Kafka)打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Scala入门

HelloWorld

创建一个scala工程

创建一个包

创建HelloWorld.scala

编写代码

数据类型

AnyVal类型之间的转换

变量和常量的声明

分支和循环

if…else…

to、until、Range

for循环

while和do…while


Scala入门

官网:https://www.scala-lang.org/

课程版本:2.13.1

HelloWorld

创建一个scala工程

创建一个包

创建HelloWorld.scala

 

 

 

编写代码

object HelloWorld {

  def main(args: Array[String]): Unit = {//入口函数

    println("HelloWorld")

  }

}

 

数据类型

像java分为基本数据类型和引用类型一样,scala也将数据分为两种类型,分别是值类型和引用类型。不同的是值类型(相当于java中的基本数据类型)有9个,并且都以对象形式存在,可以调用方法。

 

Any是所有类型的超类型,也称为顶级类型。它定义了一些通用的方法如equals、hashCode和toString。Any有两个直接子类:AnyVal和AnyRef。

AnyVal代表值类型。有9个预定义的非空的值类型分别是:Double、Float、Long、Int、Short、Byte、Char、Unit和Boolean。Unit是不带任何意义的值类型,它仅有一个实例可以像这样声明:()。所有的函数必须有

### ScalaFlinkKafka 的集成示例 在 Apache Flink 和 Apache Kafka 集成的过程中,可以通过 `FlinkKafkaConsumer` 和 `FlinkKafkaProducer` 来实现数据的消费和生产。以下是基于 Scala 编写的简单示例程序。 #### 示例代码:从 Kafka 主题中读取消息并打印到控制台 ```scala import org.apache.flink.api.common.serialization.SimpleStringSchema import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment import org.apache.flink.connector.kafka.source.KafkaSource import org.apache.flink.connector.kafka.sink.KafkaSink import org.apache.flink.connector.kafka.source.enumerator.initializer.OffsetsInitializer object FlinkKafkaIntegrationExample { def main(args: Array[String]): Unit = { // 创建执行环境 val env = StreamExecutionEnvironment.getExecutionEnvironment // 设置 Kafka Source 参数 val kafkaSource = KafkaSource.builder() .setBootstrapServers("localhost:9092") // Kafka broker 地址 .setTopics("inputTopic") // 输入主题名称 .setStartingOffsets(OffsetsInitializer.latest()) // 从最新偏移量开始消费 .setValueOnlyDeserializer(new SimpleStringSchema()) .build() // 添加 Kafka 数据源 val stream = env.fromSource(kafkaSource, WatermarkStrategy.noWatermarks(), "Kafka Source") // 对接收到的数据进行简单的转换操作 (例如大写化) val processedStream = stream.map(value => value.toUpperCase) // 将处理后的数据发送回 Kafka 另一个主题 val kafkaSink = KafkaSink.builder() .setBootstrapServers("localhost:9092") // Kafka broker 地址 .setRecordSerializer(KafkaRecordSerializationSchema.builder() .setTopic("outputTopic") // 输出主题名称 .setValueSerializationSchema(new SimpleStringSchema()) .build()) .build() // 将流写入 Kafka Sink processedStream.addSink(kafkaSink) // 执行作业 env.execute("Flink-Kafka Integration Example") } } ``` 上述代码展示了如何通过 Flink 连接到 Kafka 并完成以下功能: 1. 使用 `KafkaSource` 作为输入源来读取 Kafka 主题中的消息[^4]。 2. 对接收到的消息进行了简单的字符串转换(转为大写形式)。 3. 使用 `KafkaSink` 将处理后的结果重新写回到另一个 Kafka 主题中。 #### 关键点说明 - **版本兼容性**:确保所使用的 Flink 版本支持当前 Kafka 的协议版本。具体版本兼容性信息可参考官方文档[^1]。 - **依赖管理**:需要在 Maven 或 SBT 文件中引入必要的库,例如 `flink-connector-kafka` 和 `kafka-clients`。 ```xml <!-- Maven Dependency --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kafka_2.12</artifactId> <version>1.15.0</version> <!-- 替换为你正在使用的 Flink 版本 --> </dependency> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值