我有一个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中完成吗?如果是这样,处理阶段会是什么?
答案 0 :(得分:0)
不知道这是否有帮助...... 你可以使用变换器...并创建所有输出列作为Varchar。 在键更改时添加列名称并始终将先前的值传递给输出。
如果您需要更多信息,请与我们联系
答案 1 :(得分:0)
我使用了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