Генерация суррогатного ключа в PIG с использованием пользовательского ранга

Я буду делать трансформацию PIG ежедневно (новые данные каждый день). И мне нужно генерировать уникальный ключ для данных, извлекаемых каждый день. какой будет лучший подход? Если я выполню, ранг для tomarow перезапишет сегодня ранг?

1 ответ

Решение

Ваш рейтинг будет начинаться с 1 каждый раз, когда вы начнете его. Если вы хотите генерировать уникальные данные в день, я бы порекомендовал использовать метод хеша datafu в concat(rank + date). Вы получите уникальный хеш, который можно использовать как суррогатный ключ.

REGISTER datafu-1.2.0.jar
DEFINE SHA datafu.pig.hash.SHA();

S1 = LOAD 'surrogate_hash' USING PigStorage('|') AS (c1:chararray,date:chararray,c3:chararray);
S2 = RANK S1;
S3 = FOREACH S2 GENERATE SHA((chararray)CONCAT((chararray)rank_S1,date)),c1,date,c3;

dump S3;
Другие вопросы по тегам