2016-08-07 2 views
0

У меня есть таблица с строками в следующем форматеСбор данных по идентификатору в улье

user | purchase | time_of_purchase|quantity 

Образец

1234 | Bread | Jul 7 20:48| 1 
1234 | Shaving Cream | July 10 14:20 | 2 
5678 | Milk | July 7 3:48 | 1 
5678 | Bread | July 7 3:49 | 2 
5678 | Bread | July 7 15:30 | 1 

Я хочу создать историю покупок пользователя в следующем формате

1234 | {[Bread , Jul 7 20:48,1] ,[ Shaving Cream , July 10 14:20, 2 ]} 
5678 | {[Milk, July 7 3:48 , 1 ] , [Bread , July 7 3:49 , 2], [Bread , July 7 15:30 , 1]} 

Возможно ли это сделать в сценарии улья или свиньи? Я попробовал collect_list, но это не позволяет упорядочивать столбцы, чтобы объединиться. Также попробовал кирпичный сбор, но он ведет себя как collect_set, и я теряю часть информации.

+0

Это выглядит возможным использованием Спарк, потому что это 'операция groupByKey' –

+0

Вы можете использовать выберите * from table name groupby id query – nat

ответ

0

PIG Script

File = LOAD 'file.txt' using PigStorage(',') as (user:int, Purchase:chararray, timeofpurchase:chararray, quantity:int); 

GRP_USER = GROUP File by user; 
DUMP GRP_USER; 

вы можете сослаться немного примеров на http://ybhavesh.blogspot.com/

Надеюсь, что это помогает

+0

Спасибо за редактирование Kishore !!! .. – Bhavesh

Смежные вопросы