我有一个包含多行文本的文本文件 sherlock.txt。我使用以下方法将其加载到 spark-shell 中:
val textFile = sc.textFile("sherlock.txt")
我的目的是计算文件中的字数。我遇到了两种替代方法来完成这项工作。
首先使用flatMap:
textFile.flatMap(line => line.split(" ")).count()
第二次使用map,然后使用reduce:
textFile.map(line => line.split(" ").size).reduce((a, b) => a + b)
两者都正确产生相同的结果。我想知道上述两种替代实现在时间和空间复杂度上的差异,如果确实有的话?
scala 解释器是否将两者都转换为最有效的形式?