HIVE DB-从HUE或R查询时结果不同

问题描述

我正在尝试从HIVE数据库提取一些数据。通常,当我可以快速编写查询自动完成等)并进行测试以查看结果时,我会在HUE上开发/测试查询。然后,我转到RStudio,复制查询并使用RJDBC运行它。

最近我发现一个令人困惑的结果。如果我对HUE运行完全相同的查询,并且从R获得不同的结果(更具体地说,我从R获得的结果更少)。知道为什么吗?由于时间紧迫,我无法创建可重复的示例(实际查询复制在下面)。

SELECT OT3.id_ot id_ot,AP2.ID_SGM ua_sgm,OT3.DATA_vendA DATA_vendA,res_ot.RESULT resultado,OT3.TECNOLOGY TECNOLOGY,res_ot.RAZAO1 RAZAO1,res_ot.RAZAO2 RAZAO2,OT3.PLC PLC,OT3.tap tap,OT3.pd pd,OT3.COMENTARIO COMENTARIO
FROM
  (SELECT OT2.id_ot id_ot,OT2.ua_cod ua_cod,OT2.DATA_vendA DATA_vendA,OT2.CLOSE_REASON_ID CLOSE_REASON_ID,OT2.TECNOLOGY TECNOLOGY,OT2.DATA_OT DATA_OT,OT2.COMENTARIO COMENTARIO,OT2.PLC PLC,OT2.tap tap,OT2.pd pd,ROW_NUMBER() OVER (PARTITION BY OT2.id_ot
                             ORDER BY OT2.DATA_vendA DESC,OT2.DATA_OT DESC) AS ROW_NUMBER,ROW_NUMBER() OVER (PARTITION BY OT2.ua_cod,OT2.DATA_vendA,OT2.TECNOLOGY
                             ORDER BY OT2.DATA_OT DESC) AS ROW_NUMBER_2
   FROM
     (SELECT OT1.work_order_id id_ot,OT1.ua_cod ua_cod,cast(OT1.work_order_dat AS DATE) DATA_vendA,OT1.CLOSE_REASON_ID CLOSE_REASON_ID,CASE
                 WHEN OT1.techonology_dsc = 'FTTH' THEN 'FTTH'
                 WHEN OT1.techonology_dsc = 'CABO' THEN 'HFC'
             END AS TECNOLOGY,cast(OT1.WORK_ORDER_REAL_END_DAT AS DATE) DATA_OT,OT1.PLC_COD PLC,OT1.Tap_dsc tap,OT1.pd_dsc pd,concat(OT1.comments_txt,OT1.cancelation_comment_txt) COMENTARIO
      FROM dev_ads_dw.f_work_order OT1
      INNER JOIN dev_ads_dw.e_work_order_type TYPE ON OT1.work_order_type_id = TYPE.work_order_type_id
      INNER JOIN dev_ads_dw.e_task_type TASK ON OT1.task_type_id = TASK.task_type_id
      LEFT JOIN wb_cobr.mp_historico HIST ON OT1.work_order_id = HIST.id_ot
      WHERE OT1.CLOSE_REASON_ID <> -1
        AND OT1.techonology_dsc IN ('FTTH','CABO')
        AND OT1.ua_cod IS NOT NULL
        AND OT1.CLICK_CLIENT_CLASSIF_DSC IN ('RESIDENCIAL','norMAL/RESIDENCIAL')
        AND (TYPE.work_order_type_dsc LIKE '%Instalação%'
             OR TASK.task_type_dsc LIKE '%ALteraCAO_TECNOLOGIA%')
        AND HIST.id_ot IS NULL ) OT2) OT3
INNER JOIN
  (SELECT disTINCT AP1.access_point_id AP_ID,AP1.id_alojamento ID_SGM,cast(regexp_replace(concat('20',AP1.valid_from),'\\.','-') AS DATE) ap_valid_from,AP1.valid_to),'-') AS DATE) ap_valid_to
   FROM wb_cobr.h_access_point AP1) AP2 ON OT3.ua_cod = AP2.AP_ID
INNER JOIN
  (SELECT disTINCT RES_OT_TEMP.CLOSE_REASON_ID CLOSE_REASON_ID,UPPER(RES_OT_TEMP.close_reason_hier_lvl_1_txt) RESULT,UPPER(RES_OT_TEMP.close_reason_hier_lvl_2_txt) RAZAO1,UPPER(RES_OT_TEMP.close_reason_hier_lvl_3_txt) RAZAO2
   FROM dev_ads_dw.e_close_reason RES_OT_TEMP
   WHERE cast(RES_OT_TEMP.valid_to AS DATE) > CURRENT_DATE() ) res_ot ON ot3.CLOSE_REASON_ID = res_ot.CLOSE_REASON_ID

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)