【问题标题】:Splitting DataStage Output based on Key Column根据键列拆分 DataStage 输出
【发布时间】:2014-07-24 13:31:15
【问题描述】:

我有一个 DataStage (8.5) 作业,它生成如下 CSV 文件:

Key    Date        Amount
A      2014-07-24  $100
A      2014-07-23  $120
B      2014-07-24  $320
C      2014-07-24  $20
C      2014-07-23  $100
C      2014-07-22  $30

我想为每个不同的 Key 生成一个带有标题的新文件,以便从上述文件中生成以下文件:

Key    Date        Amount
A      2014-07-24  $100
A      2014-07-23  $120

Key    Date        Amount
B      2014-07-24  $320

Key    Date        Amount
C      2014-07-24  $20
C      2014-07-23  $100
C      2014-07-22  $30

每个键的记录数以及键值本身会根据作业的执行时间而有所不同。

这可以在 DataStage 中完成吗?如果是这样,处理阶段是什么?

【问题讨论】:

    标签: etl datastage


    【解决方案1】:

    不知道这是否有帮助... 你可以使用变压器...并将所有输出列创建为 Varchar。 在键更改时添加列名称并始终将以前的值传递给输出。

    如果您需要更多信息,请告诉我

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    【解决方案2】:

    我在 Execute Command 阶段使用了以下 awk 语句,其中 key 是 $16:

    awk -F "\",\"" 'NR==1 { hdr=$0; next } $16 != prev { prev=name=$16; gsub(/[^[:alnum:]_]/,"",name); $0 = hdr "\n" $0 } { print > ("/Directory/"name"_FILE.csv") }' /Directory/SOURCE_FILE.csv
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多