私はソーシャルネットワークのjsonファイルをsparkに読み込んでいます。私はこれらのデータフレームから爆発してペアを得る。 このプロセスは完璧に機能します。後でこれをRDDに変換したいのですが(GraphXで使用する場合)、RDDの作成には非常に時間がかかります。スパークデータフレームからrddへの変換に長時間かかる
val social_network = spark.read.json(my/path) // 200MB
val exploded_network = social_network.
withColumn("follower", explode($"followers")).
withColumn("id_follower", ($"follower").cast("long")).
withColumn("id_account", ($"account").cast("long")).
withColumn("relationship", lit(1)).
select("id_follower", "id_account", "relationship")
val E1 = exploded_network.as[(VertexId, VertexId, Int)]
val E2 = E1.rdd
プロセスが実行されたかをチェックするために、私は各ステップ
scala> exploded_network.count
res0: Long = 18205814 // 3 seconds
scala> E1.count
res1: Long = 18205814 // 3 seconds
scala> E2.count // 5.4 minutes
res2: Long = 18205814
なぜRDD変換は100Xを取っている時にカウント?