Ich lese eine JSON-Datei eines sozialen Netzwerks in Funken. Ich bekomme von diesen einen Datenrahmen, den ich explodiere, um Paare zu bekommen. Dieser Prozess funktioniert perfekt. Später möchte ich dies in RDD (für die Verwendung mit GraphX) konvertieren, aber die RDD-Erstellung dauert sehr lange.Funken Dataframe Konvertierung in RDD dauert eine lange Zeit
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
für Um zu überprüfen, wie der Prozess ausgeführt wird, zähle ich bei jedem Schritt
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
Warum ist RDD Umwandlung 100x zu nehmen?