组合的威力
《道德经》说的是简单的东西组合起来也不得了。与之类似(当然还达不到那个高度), RDD的诸多动作和变换,经过组合也可以实现复杂的计算,满足相当多现实的数据计算需求。
假设我们需要找出文件中单词数量最多的行,做个map/reduce就可以了:
scala> textFile.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b) res4: Long = 15
上面语句首先使用map变换,将每一行(成员)映射为一个整数值(单词数量),这获得了一个新的RDD。然后在 这个新的RDD上执行reduce动作,找到(返回)了单词数量最多的行。
RDD的变换有点像PS的滤镜,有时要用好几个滤镜,才能把脸修好。
请使用你的textFile变量,计算所有单词的数量。