【发布时间】:2019-07-12 01:37:12
【问题描述】:
我收到了一个数据集,我需要join 它与另一个表。因此,我想到的最简单的解决方案是为另一个表创建第二个数据集并执行joinWith。
def joinFunction(dogs: Dataset[Dog]): Dataset[(Dog, Cat)] = {
val cats: Dataset[Cat] = spark.table("dev_db.cat").as[Cat]
dogs.joinWith(cats, ...)
}
我主要关心的是 spark.table("dev_db.cat"),因为感觉就像我们将所有 cat 数据称为
SELECT * FROM dev_db.cat
然后在稍后阶段执行join。或者查询优化器会直接执行连接而不引用整个表吗?有没有更好的解决方案?
【问题讨论】:
标签: apache-spark hadoop apache-spark-sql apache-spark-dataset