Quelle est la différence entre les rejoindre et cogroup dans Apache Spark
Quelle est la différence entre les rejoindre et cogroup dans Apache Spark? Ce qui est le cas d'utilisation de chaque méthode?
Vous devez vous connecter pour publier un commentaire.
Laissez-moi vous aider à les clarifier, les deux sont communs pour l'utilisation et la important de!
C'est
prototype
de rejoindre, veuillez regarder attentivement il. Par exemple,Toutes les touches qui apparaissent dans le résultat final est commun à rdd1 et rdd2. Ceci est similaire à
relation database operation INNER JOIN
.Mais cogroup est différent,
est l'une des clés, au moins apparaître dans l'un des deux rdd, il apparaît dans le résultat final, permettez-moi de préciser:
C'est très
similar
àrelation database operation FULL OUTER JOIN
, mais au lieu d'aplatir le résultat par ligne par enregistrement, il vous donnera lainterable interface
vous, l'opération suivante est à vous en tant que pratique!Bonne Chance!
Étincelle docs est: http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.PairRDDFunctions
cogroup
pour grands ensembles de données, comme lorsque j'utilisecollect()
il jette de la mémoire exceptionrdd1 = rdd2.cogroup(rdd3).collect
. Pouvez-vous aider sur cette question [stackoverflow.com/questions/47180307/... voustake, top
savez-vous comment repartitionner le code ci-dessousval source_primary_key = s.map(rec => (rec.split(",")(0), rec)) val destination_primary_key = k.map(rec => (rec.split(",")(0), rec)) val cos = source_primary_key.cogroup(destination_primary_key)