将apache猪转换为蜂巢

时间:2019-04-08 20:41:52

标签: hive apache-pig

试图弄清楚“分组”展平以及这个特定的“展平”代码在做什么。我一直在研究下面的代码,试图弄清楚如何将其转换为蜂巢几天又一次,但我还是不明白。通常,他们使用flatten为要在输出中命名为相同的两个或更多列创建多个行。但是在这种情况下,我不确定在蜂巢中复制它是做什么的。非常感谢您的协助,因为我没有太多时间来处理此问题,而我预计将在接下来的几周内完成并测试它。谢谢。

Change_pop = GROUP IPChange_pop BY (acct_num,strategy_code);
Oldest_GLChange = FOREACH Change_pop {
OList = ORDER IPChange_pop BY process_date ASC, new_loc DESC;
Oldest = LIMIT OList 1;
GENERATE
FLATTEN(GLChange_pop) as (email,acct_num,acct_nm,cust_num,type,strategy_code,process_date,last_5,cmGroup,current_loc,new_loc,update_ts),
FLATTEN(group.strategy_code) as grp_strategy_code,
FLATTEN(Oldest.process_date) as early_process_date, FLATTEN(Oldest.new_loc) as early_new_loc;
};

1 个答案:

答案 0 :(得分:0)

Flatten用于取消嵌套的元组,包和地图。从我的脑海中回想起,Hive的等效功能是将EXPLODE()函数与LATERAL VIEW一起使用。

https://pig.apache.org/docs/latest/basic.html#flatten

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-explode