0

我有一个如下所示的输入文件,并尝试将多个客户记录转换为各自的季度,并记录每个客户。一旦季度(如 2019 年第二季度)从数据中得出,现在最新的应该转到 TimeFrame4,旧的应该转到 3、2、1 订单。

到目前为止,能够使用转换器导出四分之一,但在那之后我被困在如何识别它们并将它们分配给相应的存储桶(TimeFrame1 TimeFrame2 TimeFrame3 TimeFrame4)。关于如何在 DataStage(11.3 并行作业)中有效实现这一点(输入有 50M 记录)的任何想法。

输入:

CustID  Contacted_Time
1       2018-12-25
1       2019-06-15
1       2019-01-03
2       2019-02-24
2       2019-03-05

我需要如下所需的输出:

CustID TimeFrame1   TimeFrame2  TimeFrame3  TimeFrame4
1       null        Q4 2018     Q1 2019     Q2 2019
2       null        null        null        Q1 2019
4

1 回答 1

0

您可以按 CustId 和 Contacted_Time desc 对数据进行排序,将数据(因为我假设可能超过 4 个)过滤到四个联系人,一旦您获得季度分配一个带有数字的辅助列(也在转换器中)。

最后,Pivot 阶段可以进行垂直化,或者您也可以在变压器中执行此操作,即使用循环。

于 2019-06-19T21:25:29.253 回答