Свинья запрос фильтра - PullRequest
0 голосов
/ 07 мая 2018

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

`Customer_Data = (All data is going in "Customer_Data" )

FOREACH Customer_Data generate =>(Foreach Customer_Data it is genrating )
id as id,                 => (From this to this)
name as name,             => (From this to this)
amount as amount,         => (From this to this)
sell_date as sell_date,   => (From this to this)
click as click,           => (From this to this)
open as open,             => (From this to this)
gender as gender,         => (From this to this)

 (salary == '' ? 'null' : (salary is null ? 'null': salary)) as salary
=>(not understood)

  SUBSTRING(sell_date,5,13) As Date,
=>(not understood)

 CONCAT('20',SUBSTRING(sell_date,11,13)) As  Year,
 =>(not understood)

 (SUBSTRING(sell_date,5,7)=='01' ? 'January' : =>(not understood)
 (SUBSTRING(sell_date,5,7)=='02' ? 'February': 
 (SUBSTRING(sell_date,5,7)=='03' ? 'March'   :
 (SUBSTRING(sell_date,5,7)=='04' ? 'April'   :
 (SUBSTRING(sell_date,5,7)=='05' ? 'May'     :
 (SUBSTRING(sell_date,5,7)=='06' ? 'June'    :
 (SUBSTRING(sell_date,5,7)=='07' ? 'July'    :
 (SUBSTRING(sell_date,5,7)=='08' ? 'August'  :
 (SUBSTRING(sell_date,5,7)=='09' ? 'Se__mber':
 (SUBSTRING(sell_date,5,7)=='10' ? 'October' :
 (SUBSTRING(sell_date,5,7)=='11' ? 'November': =>(To this above is same)
 'December'))))))))))) As Month =>(Why substring Line Doesn't came in December)

SUBSTRING(sell_date,0,3) as Day,          =>(not understood)
SUBSTRING(sell_date,14,19) as TimeStamp,  =>(not understood)


,SUBSTRING(sell_date,20,22) as AMPM; =>(not understood)

1 Ответ

0 голосов
/ 07 мая 2018

Я не собираюсь проверять весь код свиньи, как указано в комментарии выше. Я пройду каждую строку и попытаюсь решить вашу проблему там, где вы написали «непонятно».

1. `(salary == '' ? 'null' : (salary is null ? 'null': salary)) as salary =>(not understood)`

Ответ: Это еще одно условие у свиньи. В нем говорится, что если salary == '' (Пусто), затем поставить 'null' (String null) или если salary равно null, тогда также поставить 'null' (String null), иначе все, что присутствует в столбце зарплаты, указывается как заработная плата.

похоже на:

if(salary == ''){
salary ='null'
} 
else if (salary is null){
salary='null'
}  
else salary

2. `1  SUBSTRING(sell_date,5,13) As Date, =>(not understood)`

Ответ: В этом случае данные вычитаются из 5-го символа в 13-значный, сохраняя их как дату: ДД / ММ / ГГ, это может быть формат даты.

3. ` CONCAT('20',SUBSTRING(sell_date,11,13)) As  Year,=>(not understood)`

Ответ: в этом случае добавляется «20» в год. это может быть так.

Формат года в дате может выглядеть следующим образом: 17 или 18, поэтому после объединения 20 год будет 2017 или 2018.

4. `(SUBSTRING(sell_date,5,7)=='01' ? 'January' : =>(not understood)`

Ответ: похоже на приведенный выше случай, когда они пытаются выяснить месяц по дате и сравнить со значением, чтобы найти месяц.

5. All other conditions are also very much similar to the above mentioned case . 

Я думаю, что это решит вашу проблему, и вы сможете переписать и выполнить код.

...