需要在 csv 文件中添加头和尾记录 - Azure 数据工厂

Need to add header and trailer record in a csv file - Azure Data factory

我是 azure 数据工厂的新手,需要使用 Azure 数据工厂实现以下逻辑,我们将 csv 文件从源传输到目标,并在文件中进行一些转换。

输入文件包含以下数据:

111|101|2019-02-04 21:04:57

222|202|2019-02-04 21:33:54

333|202|2019-02-04 20:23:55

预期输出:

H|TestFile|currentDateTime------------ Need to add this header record. H and TestFile would be static

111|101|2019-02-04 21:04:57

222|202|2019-02-04 21:33:54

333|202|2019-02-04 20:23:55

T|03-------------------------------------- T is static value. Need to add total number of records here.

有人可以帮忙吗

更新:
经过我的一系列测试,我最终能得到的结果如下:
结构概览如下:

  1. 我将 header 保存到一个 txt 文件中。

  2. source1 存储源 csv 文件,我在 Projection 选项卡中将列名称设置为 Column_1 source1数据预览如下:

  3. SurrogateKey1 activity,我输入 Row_No 作为 键列 并且1 作为 起始值

  4. Window1activity、selectRow_No作为Window列,然后输入表达式max(Row_No) Window1数据预览如下,我可以得到Row_No的最大值。

  5. 使用Pivot1activity从列切换到行,输入表达式concat('T|',toString(max(Row_No),'00'))得到T|03 Pivot1activity数据预览如下:

  6. source2的设置与source1相同。

  7. DerivedColumn1
    设置列名:Column1 ,
    设置表达式:concat(Column_1,'|',toString(currentTimestamp()))

  8. SurrogateKey2activity,我输入Row_No作为键列2作为起始值 SurrogateKey2activity数据预览如下:

  9. Select2activity处过滤我们想要的列,并给该列起一个别名。
    数据预览如下:

  10. headers 将 header 信息存储在 csv 文件中。将 Column_1 设置为列名。

  11. SurrogateKey3activity,我输入Row_No作为键列1作为起始值

  12. 联合 SurrogateKey3 activity 与 Select2 activity。 它将按 Row_No 列排序,因此标题将在第一行。

  13. 那么我们只能通过Select1activityselect我们需要的东西。 Select1activity数据预览如下:

  14. 联合 Pivot1 activity 和 Select1 activity 通过 Union2 activity。 Union2activity数据预览如下:

  15. 经过运行调试,最终csv文件如下: