2016-03-07 47 views
0

嗨,我第一次和豬玩耍,並且很好奇如何處理將字段拆分爲多個其他字段。小豬幫助:將字段拆分爲多個字段

我有一個袋子,A,像下面這樣:

grunt> Dump A; 

(text, text, Mon Mar 07 12:00:00 CDT 2016) 

我想什麼做的是日期時間字段分割成多個領域,這樣我可以探索數據的分佈設置並在星期幾,月份,年份等上進行分組。

我一直在尋找標記,但我不確定這是否符合我的需要,因爲我需要/想要將字段名稱添加到包中或創建嵌套袋。

任何想法?

回答

1

假設的值是數據類型的日期時間的已經,則可以使用下面的函數來提取個人elements.Builtin函數參照DateTime Functions in PIG

B = FOREACH A GENERATE f1,f2, 
         GetDay(f3) as f3_Day, 
         GetMonth(f3) as f3_Month, 
         GetYear(f3) as f3_Year, 
         GetHour(f3) as f3_Hour, 
         GetMinute(f3) as f3_Minute, 
         GetSecond(f3) as f3_Second; 

如果數據類型是chararray然後使用TODATE()函數來將其轉換爲日期時間並提取日期部分。

B = FOREACH A GENERATE f1,f2,ToDate(f3,'choose your datetime format') as f3_Date; 
C = FOREACH B GENERATE f1,f2, 
         GetDay(f3_Date) as f3_Day, 
         GetMonth(f3_Date) as f3_Month, 
         GetYear(f3_Date) as f3_Year, 
         GetHour(f3_Date) as f3_Hour, 
         GetMinute(f3_Date) as f3_Minute, 
         GetSecond(f3_Date) as f3_Second;