【发布时间】:2018-06-21 14:07:19
【问题描述】:
当我在 SPARK(2.0) 中执行该查询时,没有随机读取/写入,并且挂起超过 40 分钟来执行该查询。
SELECT * FROM A WHERE A.key1 NOT IN ( SELECT B.key1 from B ) AND A.key2 NOT IN (SELECT B.key2 from B )
这只是一个写作动作。
Dataset<Row> re = Operation.project(ss, var, A, B);
re.write()
.format("jdbc")
.option("driver", "var.Driver")
.option("url", var.url)
.option("dbtable", var.tablename)
.option("user", var.username)
.option("password", var.password)
.save();
A 和 B 中的记录数少于 100,000。 所以,我认为这个查询有问题。 但是这个查询只用了 30 秒。(也是写动作)
SELECT * FROM A WHERE (A.key1, A.key2) IN ( SELECT B.key1, B.key2 FROM B )
仅更改“不在”查询不会解决问题吗?
【问题讨论】:
-
好像会的。
-
哪个查询可以完全替换那个查询?
标签: sql apache-spark dataset