猪猪求助:将一个字段拆分为多个字段
Pig Help: Splitting a Field into Multiple Fields
嗨,我是第一次玩 Pig,很好奇如何处理将一个字段拆分成多个其他字段。
我有一个包,A,如下图:
grunt> Dump A;
(text, text, Mon Mar 07 12:00:00 CDT 2016)
我想做的是将日期时间字段拆分为多个字段,以便我可以探索数据集的分布,并按星期几、月份、年份等进行分组。
我一直在研究标记化,但我不确定这是否满足我的需求,因为我need/want要将字段名称添加到包中或创建嵌套包。
有什么想法吗?
假设该值已经是日期时间数据类型,那么您可以使用以下函数提取单个 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;
如果数据类型是字符数组,则使用 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;
嗨,我是第一次玩 Pig,很好奇如何处理将一个字段拆分成多个其他字段。
我有一个包,A,如下图:
grunt> Dump A;
(text, text, Mon Mar 07 12:00:00 CDT 2016)
我想做的是将日期时间字段拆分为多个字段,以便我可以探索数据集的分布,并按星期几、月份、年份等进行分组。
我一直在研究标记化,但我不确定这是否满足我的需求,因为我need/want要将字段名称添加到包中或创建嵌套包。
有什么想法吗?
假设该值已经是日期时间数据类型,那么您可以使用以下函数提取单个 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;
如果数据类型是字符数组,则使用 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;