将 CSV 从 adls 复制到 adls 在 adf 管道中不起作用

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

sink of my copy activitysource of my copy activity

我想通过 adf 管道复制活动将名为“源”的 adls 文件夹中存在的 CSV 文件复制到另一个名为“目标”的 adls 文件夹。

第一个活动 = 获取元数据 从源文件夹中获取所有文件。

第二个活动 = foreach 循环浏览文件

第二个活动内= 复制活动从源复制到目标。

我的源数据集正确指向源文件夹,并且与输出数据集相同。

我在目标中使用与源 adls 中相同的文件名。

尽管运行管道后没有错误,但源文件中存在的数据并不存在于目标文件中。

文件名在目标中与源中一样正确,这正是我想要的。

但是数据不正确。

例如,假设我的源代码中有 5 个文件,如下所示: Classone_00000.csv Classone_00001.csv Classtwo_00000.csv Classtwo_00001.csv Classtwo_00003.csv

我正在使用分区并提到每个文件 5 行

在目标中,我仍然拥有具有相同文件名的所有 5 个文件,但数据不正确,在我的情况下,classone_00000.csv 数据将出现在所有 4 个其他文件中,如果源文件中有 5 行,则会出现我的目标文件中只有 4 个文件。

我无法弄清楚为什么会发生这种情况

我尝试过使 foreach 顺序和不顺序,但似乎没有任何效果。

我只想将 adls 源文件夹中存在的数据准确复制到 adls 目标文件夹

foreach azure-pipelines copy azure-data-factory azure-data-lake-gen2
1个回答
0
投票

在您的方法中,复制活动将在每次迭代中提供所有源文件,并且对于每个目标文件,最后一个源文件数据将被覆盖到目标文件中。这可能是您的数据不正确的原因。

无需使用循环即可实现您的要求。您可以对管道中的单个复制活动执行相同的操作。

在源数据集中提供直到容器的路径,并在复制活动源数据集中提供通配符路径。

enter image description here

在目标数据集中,给出目标文件夹位置的路径。不要给出任何文件路径。

enter image description here

将其交给复制活动接收器。

enter image description here

执行管道,源位置的所有文件将被复制到目标位置。

enter image description here

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