У меня есть стол с 15 колонками.Как вычислить вычитание двух столбцов в PigLatin?
2 из этих столбцов имеет формат даты, например: 09/08/2003. Один столбец data_1 - дата начала, другая дата окончания данных_2.
Мне нужно посчитать разницу между столбцами и проверить, составляет ли это различие более 30 дней.
Результатом должна быть таблица со столбцом, которая показывает значения, превышающие 30-дневную разницу, и все остальные 15 столбцов. Сценарий может быть что-то simmilar к этому:
table = LOAD '$INPUT' AS (data_1, data_2, a1, a2, ... a13);
ggdif = (data_2 - data_1);
C = FILTER table BY (ggdif > 30) AS differ;
D = FOREACH C GENERATE a1 .. a13;
STORE D INTO '$OUTPUT' USING PigStorage('\t');
У меня есть некоторые проблемы с этой задачей:
Как подсчитать разницу между 2 столбцами значений?
Как установить дату в правильном формате в свинье?
Спасибо. Извините, но для меня это звучит немного сложно. Можете ли вы объяснить на фиктивном уровне, пожалуйста? – Ale
Нет, спасибо и извините ... http://wiki.apache.org/pig/UDFManual это дает вам очень хорошую ручку в концепции UDF Pig. Пожалуйста, не стесняйтесь бросать заметку, если вам нужна дополнительная помощь. –
Спасибо! Я постараюсь справиться с этим. Я думаю, что это не самый простой способ, может быть, существует менее сложный способ сделать это? – Ale