Lateral view outer explode
进行列转行,产生指标的数据。union all
将指标数据连接起来; 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操作报错,具体如下:
使用 with as
将 union all
的代码包裹起来,然后在外层distinct
所有字段后就不会数据丢失了。根据其他教程所说是HIVE的元数据优化机制,丢弃了没有后续reduce操作的数据。但是,我按照教程上说的将hive.optimize.index.filter
设为false
后,没有效果。
造成数据丢失的深层次原因是什么,有没有其他解决办法?求赐教orz。
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。