如何在 Hive 中以严格模式实现笛卡尔积连接



如您所知,在严格模式下,Hive 不允许笛卡尔乘积连接,但我们可以在该模式下以另一种方式实现它吗?

在严格模式下,不允许使用笛卡尔积。因此,您必须在 ON 子句中包含 JOIN 条件,而不是像这样包含 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); 

。正常结果...

相关内容

  • 没有找到相关文章

最新更新