首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蜂巢:非平等加入在蜂箱中不工作。

蜂巢:非平等加入在蜂箱中不工作。
EN

Stack Overflow用户
提问于 2018-09-01 04:38:17
回答 1查看 598关注 0票数 0

我有问题,蜂箱离开了外接。

我在sql-server中有al表。然后使用sqoop迁移蜂窝上的所有表。

这是来自sql-server的原始查询,其中包含非equi左外部联接。这两个表都有笛卡尔数据。

代码语言:javascript
复制
SELECT
   vss.company_id,vss.shares_ship_id,vss.seatmap_cd,vss.cabin,vss.seat,
vss.seat_loc_dscr, vss.ep_seat AS EPlus_Seat, vss.ep_win_seat,
vss.ep_asle_seat, vss.ep_mid_seat, vss.em_win_seat,
   vss.em_mid_seat,vss.em_asle_seat,vss.y_win_seat, vss.y_mid_seat,
vss.y_asle_seat, vss.fj_win_seat, vss.fj_mid_seat,
vss.fj_asle_seat,vss.exit_row, vss.bulkhead_row, vss.eff_dt, vss.disc_dt
FROM rvsed11 zz
LEFT OUTER JOIN rvsed22 vss
   ON zz.company_id = vss.company_id
   AND zz.shares_ship_id = vss.shares_ship_id
   AND *zz.report_dt >= vss.eff_dt *
   AND *zz.report_dt < vss.disc_dt*;

As we know that Nonequi joins are not working in hive ( Nonequi joins
working in WHERE clause but we cannot use with LEFT OUTER JOIN).

See below hive query with noon-equi condition moved to where clause.

SELECT
   vss.company_id,vss.shares_ship_id,vss.seatmap_cd,vss.cabin,vss.seat,
vss.seat_loc_dscr, vss.ep_seat AS EPlus_Seat, vss.ep_win_seat,
vss.ep_asle_seat, vss.ep_mid_seat, vss.em_win_seat,
   vss.em_mid_seat,vss.em_asle_seat,vss.y_win_seat, vss.y_mid_seat,
vss.y_asle_seat, vss.fj_win_seat, vss.fj_mid_seat,
vss.fj_asle_seat,vss.exit_row, vss.bulkhead_row, vss.eff_dt, vss.disc_dt
FROM rvsed11 zz
LEFT OUTER JOIN rvsed22 vss
   ON zz.company_id = vss.company_id
   AND zz.shares_ship_id = vss.shares_ship_id

*WHERE zz.report_dt >= vss.eff_dt AND zz.report_dt < vss.disc_dt;*

原始查询在Server上提供了1162条记录,但是这个单元查询提供了46240条记录。为了得到相同的逻辑,我尝试了多种方法,但在蜂箱上却没有得到相同的结果。

请你帮我找出这个问题,让查询用相同的结果集处理蜂巢。

告诉我你需要其他细节。

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 16:48:23

Hive不允许在ON语句中使用<=或>=来比较表中的列。

这里有一个摘录自蜂巢手册

Version 2.2.0+:ON子句中的复杂表达式

支持ON子句中的复杂表达式,从Hive2.2.0开始(参见HIVE-15211,HIVE-15251)。在此之前,Hive不支持不平等的联接条件。

特别是,联接条件的语法限制如下:

代码语言:javascript
复制
join_condition:
    ON equality_expression ( AND equality_expression )*
equality_expression:
    expression = expression

还可以将此作为替代:非马左外加入蜂巢解决方案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52124915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档