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

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日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境