Apache Sparkの背後での動作を理解しようとしています。 Sparkで少しコーディングした後、私はそれがRDD
をRMIとして実装していることをかなり確信していますリモートオブジェクト、そうですか?Apache Sparkとリモートメソッドの呼び出し
このようにして、map
s、flatMap
sなどの変換の中でそれらを変更することができます。 RDD
の一部ではないオブジェクトは、単にシリアル化され、実行中にワーカーに送信されます。
ストリングtoFind
を単にシリアル化と労働者にコピーされながら、以下の例では、lines
とtokens
は、リモートオブジェクトとして扱われます。
val lines: RDD[String] = sc.textFile("large_file.txt")
val toFind = "Some cool string"
val tokens =
lines.flatMap(_ split " ")
.filter(_.contains(toFind))
私は間違っていますか?私は少しgoogledしかし、私はスパークRDD
が内部的にどのように実装されているかについての参照が見つかりませんでした。
ソースコード[Scala's RDD](https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/RDD.scala)を確認することができます。 。 –
@AlbertoBonsanto、そうです。しかし、 'RDD.scala'ファイルは1800以上のslocを持っています:) –