我正在整理员工志愿者的资料。无法跟踪员工是否已注册为志愿者,以便他可以注册为新志愿者并获得新的志愿者id。我有一个数据输入,可以将每个志愿者id与其emp id绑定。需要清理志愿者数据,以便我们可以了解员工如何从一个志愿者级别移动到另一个级别以及何时移动。
业务逻辑是,当有重叠的日期时,我们为员工提供从开始日期到结束日期之间的最高级别。
我发布了一个数据输入示例和输出应该是什么。
有没有可能用Pig的脚本来做这个?有人能帮帮我吗
输入:
EMP_ID VOLUNTEER_ID V_LEVEL STATUS START_DATE END_DATE
10001 100 1 A 1/1/2006 12/31/2007
10001 200 1 A 5/1/2006
10001 100 1 A 1/1/2008
10001 300 3 P 3/1/2008 3/1/2008
10001 300 3 A 3/2/2008 12/1/2008
10001 1001 2 A 5/1/2008 6/30/2008
10001 1001 3 A 7/1/2008
10001 300 2 A 12/2/2008
需要输出:(输出中不需要自愿者id,但在下面添加以显示选择哪个id作为输出,哪个没有)
EMP_ID VOLUNTEER_ID V_LEVEL STATUS START_DATE END_DATE
10001 100 1 A 1/1/2006 12/31/2007
10001 300 3 P 3/1/2008 3/1/2008
10001 300 3 A 3/2/2008 12/1/2008
10001 1001 2 A 5/1/2008 6/30/2008
10001 1001 3 A 7/1/2008
1条答案
按热度按时间vq8itlhq1#
似乎您希望数据中的每一行都有最早的开始日期
V_LEVEL
,STATUS
,EMP_ID
,和VOLUNTEER_ID
首先,我们添加一个unix时间列,然后找到该列的最小值(这是pig的最新版本,因此您可能需要更新您的版本)。然后将开始日期和结束日期连接回您的数据集中,因为在那里,似乎目前没有办法将unix时间转换回日期。