Github user mengxr commented on the pull request:
https://github.com/apache/spark/pull/1698#issuecomment-50892213
They are not the same. We use treeReduce to avoid having all executors
sending data to the driver, which is not available in reduceByKey. Broadcast is
also different from cartesian. This solution cannot avoid having duplicate
calculations to `rdd`. When the computation is triggered, we still need to
visit `rdd` twice. One difference is if someone calls `normalizeByCol` but
never uses the normalized rdd.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---