The objective of this section is to think in a functional programming way.
As good data architects, here we will understand collections. We will not cover other issues of the language other than collection management.
We need to be clear regarding the following two statements:
- Scala collections are different from Java collections
- Scala collections are different from Spark collections
So, a list in Java is different from a list in Scala. Lists are a fundamental part of functional languages. The first functional programming language, LISP, is an acronym for List Processing.
We have to master three key concepts of functional programming to understand Scala collections:
- Predicates
- Literal functions (anonymous functions)
- Implicit loops
A predicate is just a function that receives several parameters and returns a Boolean value.
For example:
def isOdd (i: Int) = if (i % 2 != 0) true else false
A literal function is an alternate syntax for defining a function. It's useful when we want...