Преобразование апачей свиньи в улей - PullRequest
0 голосов
/ 08 апреля 2019

Попытка выяснить, как "сглаживать" группу, и что делает этот конкретный "сглаживать" код.Я работал над кодом ниже, пытаясь выяснить, как преобразовать его в улей в течение нескольких выходных и так далее, и я просто не понимаю.Обычно они используют 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 голосов
/ 10 апреля 2019

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

...