先上结论:不拘泥于形式,给一个东西,一顿操作,返回一个东西。且对每一条数据都相同的处理,处理完会生成新的东西,不改变之前你传进来的东西。
这个东西你可以理解为任何形式的数据,如map里的,对象,各种形式文件等等。
当深入理解map
方法时,我们可以将其视为一种编程思想,它体现了一种函数式编程的范式。函数式编程是一种编程范式,它强调将计算视为数学上的函数计算,避免使用可变状态和副作用。在Spark的上下文中,map
方法提供了一种方式来应用这种函数式编程范式。
一些关键编程思想:
- 无状态计算:在函数式编程中,计算是无状态的,这意味着计算的结果仅取决于输入参数,而不依赖于程序的其他部分或外部状态。
map
操作正是这样的无状态计算,它对每个元素独立地应用一个函数,并产生一个新的数据集作为输出。 - 不可变性:函数式编程鼓励使用不可变数据结构,这意味着数据一旦创建就不能被修改。在Spark中,虽然RDD(弹性分布式数据集)是可变的,但
map
操作创建了一个新的RDD,而不是修改原始数据集。这种不可变性的思想有助于简化并行计算和避免数据一致性问题。 - 纯函数:在函数式编程中,纯函数是指给定相同输入总是产生相同输出的函数,并且没有副作用。
map
操作应用的是一个纯函数,因为它对每个输入元素返回一个确定的结果,并且不会对数据集进行任何额外的修改或产生副作用。