Implicit_Ink 2022-02-17 10:27 采纳率: 0%
浏览 408
已结题

HIVE:union all 之后数据丢失

产生问题的操作

  1. 使用 Lateral view outer explode 进行列转行,产生指标的数据。
  2. 使用union all 将指标数据连接起来;
  3. 将连接起来的数据插入到ORC表中

产生问题的相关代码

 create table if not exists tmp_dm.tmp1
 stored as orc
 as 
 select ...
 from tmp2
 lateral view outer explode(
  map(....)
 ) as key, value
 union all 
 select ...
 from tmp2
 lateral view outer explode(
  map(....)
 ) as key, value

脚本运行时使用的参数

set hive.execution.engine=tez;
set hive.auto.convert.join=false;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.merge.tezfiles=true; 
set hive.exec.max.dynamic.partitions=50000;
set hive.exec.max.dynamic.partitions.pernode=10000;
set hive.optimize.index.filter = false;

报错

TEZ的管理UI显示,有个DAG任务中的reduce操作报错,具体如下:

img

我的解答思路和尝试过的方法

使用 with asunion all的代码包裹起来,然后在外层distinct所有字段后就不会数据丢失了。根据其他教程所说是HIVE的元数据优化机制,丢弃了没有后续reduce操作的数据。但是,我按照教程上说的将hive.optimize.index.filter设为false后,没有效果。

我想要达到的结果

造成数据丢失的深层次原因是什么,有没有其他解决办法?求赐教orz。

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2022-02-21 10:09
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 创建了问题 2月17日

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试