如何利用spark快速计算笛卡尔积?
的有关信息介绍如下:
可以试试用 DataFrame API。
笛卡尔积映射到 SQL/DataFrame 上就是一个不带 join 条件的 inner join。DataFrame API 相对于 RDD API 的好处在于整体执行引擎基于 Spark SQL 的 Catalyst optimizer,并且可以利用上 project Tungsten 引入的各种执行层面的优化。Spark 新近版本中无 join 条件的 inner join 被编译为 CartesianProduct 时采用的已经是 UnsafeCartesianRDD 了。
此外,如果是两个 DataFrame 中有一个显著小于另一个,可以考虑将小的 DataFrame 广播出去从而避免大量 shuffle。以下是 1.6 的 spark-shell 中的示例:



