複数行のテキストを含むテキスト ファイル sherlock.txt があります。以下を使用してspark-shellにロードします。
val textFile = sc.textFile("sherlock.txt")
私の目的は、ファイル内の単語数を数えることです。私は仕事をするための2つの代替方法に出くわしました。
最初に flatMap を使用します。
textFile.flatMap(line => line.split(" ")).count()
2 番目に map を使用し、次に reduce を使用します。
textFile.map(line => line.split(" ").size).reduce((a, b) => a + b)
どちらも正しく同じ結果をもたらします。上記の 2 つの代替実装の時間と空間の複雑さの違いを知りたいです。
scala インタープリターは両方を最も効率的な形式に変換しますか?