如何在hive中实现严格的笛卡尔积连接?

u0sqgete  于 2021-06-29  发布在  Hive
关注(0)|答案(1)|浏览(1114)

正如您在严格模式中所知,hive不允许笛卡尔积联接,但是我们可以用另一种方式在该模式中实现它吗?

waxmsbnn

waxmsbnn1#

在严格模式下,不允许笛卡尔积。因此,必须在on子句中包含连接条件,而不是像这样的where子句:

hive> SELECT * FROM fracture_act JOIN fracture_ads > WHERE fracture_act.planner_id = fracture_ads.planner_id;
FAILED: Error in semantic analysis:
In strict mode, cartesian product is not allowed. If you really want to perform the operation,
+set hive.mapred.mode=nonstrict+

以下是正确构造的带有join和on子句的查询:

hive> SELECT * FROM fracture_act JOIN fracture_ads > ON (fracture_act.planner_id = fracture_ads.planner_id);

... 正常结果。。。

相关问题