私は次の例を試していました
val lista = List(("a", 3), ("a", 1), ("b", 7), ("a", 5))
val rdd = sc.parallelize(lista)
次に、シェルで次のように取得します
rdd: org.apache.spark.rdd.RDD[(String, Int)] = ParallelCollectionRDD[40] at parallelize at <console>:30
しかし、何らかの理由で、私はまだこの文を実行できたことを理解していません
val resAgg = rdd.aggregateByKey(new HashSet[Int])(_+_, _++_)
これをシェルで取得する
resAgg: org.apache.spark.rdd.RDD[(String, scala.collection.mutable.HashSet[Int])] = ShuffledRDD[41] at aggregateByKey at <console>:32
だから私はいくつかの質問があります:
1.- rdd という名前の var の実際の RDD タイプは何ですか? シェルでは org.apache.spark.rdd.RDD[(String, Int)] 型であることが示されていますが、API を見ると、RDD クラスには aggregateByKey メソッドがありません。ちなみにJavaPairRDDクラスにはaggregateByKeyメソッドがあります
2.- RDDの実際のタイプを確認/知るにはどうすればよいですか
3.- ParallelCollectionRDD が表示されたのは何ですか? 私はgithubでそれを探しましたが、プライベートクラスであることがわかったので、それがscala APIに表示されない理由だと思いますが、それは何のためですか?
Spark 1.6.2を使用していました