Apache Spark 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

组合的威力

老子

《道德经》说的是简单的东西组合起来也不得了。与之类似(当然还达不到那个高度), 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变量,计算所有单词的数量。