Was zwischen beitreten und cogroup in Apache Zündkerzen ist der Unterschied? Und wenn sie SieWas ist der Unterschied zwischen beitreten und cogroup in Apache Funken
Antwort
mich verwenden Lassen Sie ihnen helfen, zu klären, beide sind häufig und wichtig zu verwenden!
def join[W](other: RDD[(K, W)]): RDD[(K, (V, W))]
Dies ist prototype
von beizutreten, bitte sorgfältig es auch dreht. Zum Beispiel
val rdd1 = sc.makeRDD(Array(("A","1"),("B","2"),("C","3")),2)
val rdd2 = sc.makeRDD(Array(("A","a"),("C","c"),("D","d")),2)
scala> rdd1.join(rdd2).collect
res0: Array[(String, (String, String))] = Array((A,(1,a)), (C,(3,c)))
Alle Schlüssel, die im Endergebnis erscheint ist RDD1 und RDD2 gemeinsam. Dies ist ähnlich zu relation database operation INNER JOIN
.
Aber cogroup unterscheidet,
def cogroup[W](other: RDD[(K, W)]): RDD[(K, (Iterable[V], Iterable[W]))]
als ein Schlüssel zumindest in einem der beiden RDDs erscheinen, ist es im Endeffekt erscheinen wird, lassen Sie es mich klarstellen:
val rdd1 = sc.makeRDD(Array(("A","1"),("B","2"),("C","3")),2)
val rdd2 = sc.makeRDD(Array(("A","a"),("C","c"),("D","d")),2)
scala> var rdd3 = rdd1.cogroup(rdd2).collect
res0: Array[(String, (Iterable[String], Iterable[String]))] = Array(
(B,(CompactBuffer(2),CompactBuffer())),
(D,(CompactBuffer(),CompactBuffer(d))),
(A,(CompactBuffer(1),CompactBuffer(a))),
(C,(CompactBuffer(3),CompactBuffer(c)))
)
Dies ist sehr similar
zu relation database operation FULL OUTER JOIN
, aber statt das Ergebnis pro Zeile pro Datensatz zu verflachen, wird es Ihnen die interable interface
zu Ihnen geben, Die folgende Operation ist bis zu Ihnen als bequem!
Viel Glück!
Spark-docs ist: http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.PairRDDFunctions
- 1. Was ist der Unterschied zwischen Apache Felix und Apache Tomcat
- 2. Was ist der Unterschied zwischen wo und beitreten?
- 3. Was ist der Unterschied zwischen Apache Mahout und PredictionIO?
- 4. Was ist der Unterschied zwischen Apache Cordova und PhoneGap?
- 5. Was ist der Unterschied zwischen MQTT-Broker und Apache Kafka?
- 6. Was ist der Unterschied zwischen Apache Spark SQLContext und HiveContext?
- 7. Was ist der Unterschied zwischen "zeroconf" und Apache Tribes?
- 8. Was ist der Unterschied zwischen Apache Ambari Server und Agent
- 9. Was ist der Unterschied zwischen Apache Camel und JBoss Fuse?
- 10. Apache logs - was ist der Unterschied zwischen% a und% h?
- 11. Was ist der Unterschied zwischen Apache Cordova und ionischen?
- 12. Was ist der Unterschied zwischen `==` und `ist`?
- 13. Unterschied zwischen beitreten
- 14. Was ist der Unterschied zwischen/* ... */und/** ... */
- 15. Was ist der Unterschied zwischen + = und = +?
- 16. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 17. Was ist der Unterschied zwischen:.! und: r !?
- 18. Was ist der Unterschied zwischen Verilog! und ~?
- 19. Was ist der Unterschied zwischen Difftime und '-'?
- 20. Was ist der Unterschied zwischen $ und $$?
- 21. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 22. Was ist der Unterschied zwischen strcpy und "="?
- 23. Was ist der Unterschied zwischen ⊕ und + hier?
- 24. Was ist der Unterschied zwischen `&` und `ref`?
- 25. Was ist der Unterschied zwischen $ (...) und `...`
- 26. Was ist der Unterschied zwischen .Equals und ==
- 27. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 28. Was ist der Unterschied zwischen? und ? = Nil
- 29. Was ist der Unterschied zwischen DOCUMENT_URI und URI_REQUEST in SSI?
- 30. Was ist der Unterschied zwischen innerer Verbindung und äußerer Verbindung?
Wie 'cogroup' wie für große Datensätze zu verwenden, wenn ich' sammeln verwenden() 'es aus Speicherausnahme wirft' RDD1 = rdd2.cogroup (RDD3) .collect'. Können Sie bei diesem Problem helfen [https://stackoverflow.com/questions/47180307/how-to-use-cogroup-for--large-datasets].Thank Sie – Vignesh
@Vignesh, verwenden Sie bitte Methode statt sammeln. – ashburshui
yh, versucht mit 'take, top' weisst du wie man den untenstehenden Code umpartitioniert – Vignesh