比较文件与 CSV 控制文件的行数

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

在 Azure synapse 管道内,我需要查找 CSV 文件的行数并将其与存储在 Azure Blob 存储中的摘要文件进行比较。

如果比较失败,则管道将停止,如果计数匹配,则可以在管道中继续前进。

管道,有哪些组件

azure azure-data-factory pipeline azure-synapse
1个回答
0
投票

如果您的行数少于 5000,您可以针对此要求使用查找活动,这将给出所需的文件行数。

为您的文件创建数据集并将其提供给两个查找活动,如下所示。确保在这两个活动中取消选中仅第一行选项。

enter image description here

现在,进行 if 活动并使用以下表达式来比较两个行计数。

@equals(activity('count of control').output.count,activity('count of csv').output.count)

enter image description here

如果条件满足,您可以在 if 活动的 True 活动 中添加进一步的活动。否则,您可以通过不在 if 活动的 False 活动 中提供任何活动来停止管道。

如果控制文件中的行数如下面的示例。

filename,count
one.csv,5

然后,将控制文件查找活动输出数组中的 count 属性与 CSV 文件行计数进行比较。

而且,如果 CSV 文件数量超过 5000,您可以使用 ADF 数据流

在数据流中使用以下转换获取 CSV 文件的行数。

  • 来源(csv文件)
  • DerivedColumn -> 创建新列
    rowcount
    并给出一些值。
  • 聚合 -
    count(rowcount)
  • sink - 使用 sink 缓存 将此行计数值传递到管道。

数据流活动结束后,使用 if 活动将 CSV 文件的行数与控制文件数进行比较。

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