gpt4 book ai didi

azure - 如何使用 ADF 检查和比较文件夹 (Datalake) 内的文件名

转载 作者:行者123 更新时间:2023-12-03 03:32:03 26 4
gpt4 key购买 nike

我的要求是将 Datalake 文件夹中的文件名与 .CSV 文件中的文件名进行比较,如果文件名匹配,那么我想复制这些文件,如果文件名不匹配,那么我想存储这些文件名在数据湖中的 .CSV 文件中。

请帮忙。

最佳答案

您可以通过以下 3 个步骤来实现该要求,即从 csv 文件和 ADLS 文件夹中获取文件名,过滤匹配和不匹配的文件名(从文件夹中),最后进行相应的复制操作。

第 1 步:

  • 我使用获取元数据事件从 ADLS 文件夹中获取文件名列表(sample1.csv、sample2.csv、sample3.csv、sample4.csv)。创建指向您的文件夹的数据集并使用子项作为字段列表。

enter image description here

  • 查找以从 csv 文件中获取文件名(sample1.csv、sample2.csv、sample5.csv、sample6.csv)。

enter image description here


第 2 步

  • 现在使用过滤器事件,获取匹配的文件名。我使用以下内容作为我的项目和过滤条件来获取匹配的文件名:
items- @activity('list of files in folder').output.childItems
condition- @contains(string(activity('filenames present in csv').output.value),item().name)

enter image description here

  • 为了从 ADLS 文件夹中获取不匹配的文件名,我使用了以下项目和过滤条件:
items- @activity('list of files in folder').output.childItems
condition- @not(contains(string(activity('filenames present in csv').output.value),item().name))

enter image description here


第三步:

  • 现在,使用每个事件将每个文件复制到另一个位置。我将第一个中的项目值用作 @activity('获取匹配文件').output.Value。在其中,我配置了一个复制事件来复制每个项目的当前事件(即文件名)。

  • 我已在 dataset 中创建了一个参数称为文件名。我从复制数据源设置传递了它的值 (@item().name),如下所示。

enter image description here

  • 现在,对于文件夹中不匹配的文件名,我使用每个并追加变量来创建文件名数组,例如 ["sample3.csv", "sample4.csv"]。每个项目的值为 @activity('getting unmatched files').output.Value
  • 在每个内部,我使用了附加变量,其值为@item().name

enter image description here

  • 现在,我们必须使用文件夹中所有不匹配的文件名创建一个新的 csv 文件。使用复制数据事件,取sample csv file (有一些内容。这些内容并不重要,我们只需要一个文件作为源)。
  • 现在添加一个附加列,称为文件名,其动态内容值如下。 (确保管道 JSON 中的文件名值与 this reference image 中的值相同)
@join(variables('filenames'),'
')

#the values will be joined using newline(\n).
#Using \n directly in dynamic content would not work as it will be taken as \\n.
#So change it in pipeline json as in above reference image.

enter image description here

  • 按如下方式配置接收器。选择路径、文件名,并确保将引号字符选择为无引号字符

enter image description here


输出:

  • 当我运行管道时,它会生成所需的输出。匹配复制的文件生成如下:

enter image description here

  • 写入 csv 文件的不匹配文件名如下所示:

enter image description here

关于azure - 如何使用 ADF 检查和比较文件夹 (Datalake) 内的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74486349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com