使用 ADF,如何根据变量标头值提取特定行?

问题描述 投票:0回答:1

我有一个 CSV 文件(如果你可以这样称呼它的话),如下所示:

Client Data,,,,,
From Date: 26-Feb-2021 To Date: 26-Feb-2022,,,,,
CustomID: BLAH-BLAH,,,,,
,,,,,,
col1,col2,,,,
1,asdfasdf,,,,
{bunch more rows}
342324234,ff,,,,
,,,,,,
,,,,,,
,,,,,,
Client Data - Details,,,,,
From Date: 26-Feb-2021 To Date: 26-Feb-2022,,,,,
CustomID: BLAH-BLAH,,,,,
,,,,,,
Account Number,col2,col3,col4,col5,col6
1,a,bc,def,ghi,2022-01-11
{bunch more rows}
333331,a,bc,def,ghi,2022-01-12
,,,,,,
,,,,,,
,,,,,,
Client Data - Crap,,,,,
From Date: 26-Feb-2021 To Date: 26-Feb-2022,,,,,
CustomID: BLAH-BLAH,,,,,
,,,,,,
Useless Column,col2,col3,col4,col5,col6
1,a,bc,def,ghi,2022-01-11
{bunch more rows}
333331,a,bc,def,ghi,2022-01-12

如何在 ADF 中“打开”我想要的标题和行从

Account Number,col2,col3,col4,col5,col6
开始到
333331,a,bc,def,ghi,2022-01-12
结束的“窗口”?

请注意,此行

Account Number,col2,col3,col4,col5,col6
可以出现在文件中的任何位置或任何位置。

csv azure-data-factory google-cloud-dataflow
1个回答
0
投票

如何在 ADF 中“打开”我想要的标题和行从

Account Number,col2,col3,col4,col5,col6
开始到
333331,a,bc,def,ghi,2022-01-12
结束的“窗口”?

要实现此目的,您需要使用多种转换以及“窗口”转换,如下所示:

  1. 首先,我获取了您提供的示例数据集。

enter image description here

  1. 然后我采用派生列并创建了 3 列虚拟列,FindACC(查找帐号行)和 FindNull(查找空行)
dummy - 1
FindACC - iif({_col0_}=='Account Number', '1', toString(null()))
FindNull - iif(isNull({_col0_}), '1', toString(null()))

enter image description here 数据预览: enter image description here

  1. 进行代理键转换并创建 rownum 列,起始值和步长值为 1。

enter image description here

  1. 现在使用以下设置进行窗口转换

enter image description here enter image description here 创建窗口列如下。

FindACC - coalesce(FindACC, last(coalesce(FindACC), true()))

enter image description here

  1. 然后使用过滤器转换用
    FindACC == '1'
  2. 过滤所有行

enter image description here

  1. 现在使用与上面相同的设置进行另一个窗口转换,只需更改窗口列如下
FindNull - coalesce(FindNull, last(coalesce(FindNull), true()))

enter image description here

  1. 然后使用另一个过滤器转换用
    FindACC =='1' && isNull(FindNull)
  2. 过滤所有行

enter image description here

  1. 现在使用选择转换删除我们创建的所有列,您将得到如下结果。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.