排序
3.1 选择结构
Scala同样提供了对程序流程控制的语法。Scala中的程序流程控制结构虽然与Java类似,但也有自己的一些独特的方法。选择结构Scala的if/else语法结构和Java或者C++一样。不过,在Scala中if/else表...
6.1 Scala函数式编程
尽管Scala是一种混合的面向对象和函数式编程语言,但它强调函数式编程。这就是为什么它是一种强大的语言。如果将Scala作为一种函数式编程语言使用,而不只是把它当作另一种面向对象编程语言来使...
在Spark中实现增量合并(upsert/merge实现)
通常会将大量数据抽取到Hadoop分布式文件系统(HDFS)中进行分析。通常情况下,我们需要用新的变化定期更新这些数据。很长一段时间以来,实现这一目标的最常见方法是使用Apache Hive增量地将新的...
《Linux 101》在线讲义 #Linux 的基础教程#
本书由中国科学技术大学 Linux 用户协会的数名优秀成员协力编写,用于配套和延展“Linux 101”校内社团活动。其面向 Linux 零基础读者,从计算机操作系统和 Linux 的起源讲起,深入浅出带领读者...
4.8 Scala集合:Option
在Scala中,Option[T]是给定类型的0或1个元素的容器。Option 是一个数据类型,用来表明一些数据的“有”或“无”,可以是Some[T]或None[T],其中T可以是任何给定类型。一个Some 实例可以存储任...
8.2 字符串插值
Scala中的String构建在Java中的String之上,并添加了额外的特性,如字符串插值(字符串插值是一种将字符串内的值与变量相结合的机制)。字符串插值是根据数据创建字符串的过程。用户可以将任...
2.4 数组
Scala语言中提供的数组是用来存储固定大小的同类型元素的。数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。Scala中数组分为定长数组和变长数组。创建定长数组Array的两种方式:先...
5.8 尾递归函数
在本节中,我们将学习如何创建尾递归(tail recursive)函数,以及如何使用@annotation.tailrec注解,这将指示编译器应用任何进一步的优化。如何定义尾递归函数?在下面的示例中,我们定义一个...
Spark合并Hive ODS离线数据和HBase实时数据,并存入Hive DWD层
任务描述抽取 ods 库中表 table4 最新分区的数据,并结合 HBase 中 table4 offline表中的数据合并抽取到 dwd 库中 fact table4 的分区表,分区字段为etl date 且值与 ods 库的相对应表该值相等...
1.1 Scala简介
Scala是一种非常适合开发大数据应用程序的语言,是使用Apache Spark的首选语言。使用Scala语言来学习Spark,具有以下优点:首先,开发人员可以通过使用Scala实现显著的生产力提升。其次,它帮助...
4.7 Scala集合:Range和Tuple
RangeRange定义一个范围,指定开始、结束和步长,通常用于填充数据结构和遍历for循环。object RangeDemo { def main(args: Array[String]): Unit = { // 使用方法to来创建Range(包含上限) ...
8.1 字符串基本使用和相等性判断
在 Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着如果修改字符串就会产生一个新的字符串对象。但其他对象,如数组就是可变的对象。字符串基本使用Scala中字符串的数...
2.3 运算符
数据存储在变量中,要对数据进行运算,就需要使用运算符。Scala语言中提供了这几种运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。注:实际上,Scala没有传统意义上的运...
5.7 类型化函数,多态函数和符号函数
类型化函数所谓类型化函数,指的是在调用函数时可以指定参数的类型。Scala的类型化函数通过变量的使用提供了更大的灵活性。那么,如何定义一个泛型类型函数将指定其参数的类型?下面我们将创建...
5.14 案例:使用Spark统计连续三周登录的用户数
假设有如下一个用户登录日志表:+------+-------+-------------------+|log_id|user_id| log_time|+------+-------+-------------------+| 1| 1000|2022-03-10 10:08:1...
1.2 安装Scala
Scala可以安装在Windows和Linux操作系统下。下面我们分别介绍在这两个操作系统下安装Scala的步骤。 (注:在安装Scala前,请确保已经安装好了JDK 8,并配置好了环境变量。)本节包括如下内容:...