Я новичок в латыни свиней. У меня есть требование найти записи за последние 7 дней из CSV, содержащие данные за последние 4 года.
Может ли кто-нибудь помочь мне понять это.
Я новичок в латыни свиней. У меня есть требование найти записи за последние 7 дней из CSV, содержащие данные за последние 4 года.
Может ли кто-нибудь помочь мне понять это.
Более общий способ — сравнить каждую строку данных и проверить, старше ли она 7 дней или нет? Для этого нам нужно зафиксировать дату в каждой строке данных. Пусть набор данных представляет собой отношение dataSet с полем столбца в виде даты типа chararray.
В Pig 0.11 вы можете преобразовать поле даты из chararray в тип данных datetime, используя функцию ToDate(), а затем получить разницу между CurrentTime() и датой, используя DaysBetween(), и отфильтровать по ней. Например:
lastSevenDaysRec = FILTER dataSet BY DaysBetween(CurrentTime(), ToDate(date, 'yyyy MM dd')) <= 7
Вы можете проверить следующую документацию для подробного понимания различных функций даты и времени в Свинья на латыни. Также вы можете посмотреть допустимые форматы для использования в функции ToDate.
Предполагая, что ваш набор данных равен A и есть одна строка в день, и у нее есть поле с именем даты, вы можете попробовать что-то похожее на это:
B = GROUP A BY date;
B = ORDER A BY group DESC;
B = LIMIT B BY 7;
И тогда у вас будут записи за последние семь дней, сгруппированные по дате.