我想通过 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 目标文件夹
在您的方法中,复制活动将在每次迭代中提供所有源文件,并且对于每个目标文件,最后一个源文件数据将被覆盖到目标文件中。这可能是您的数据不正确的原因。
无需使用循环即可实现您的要求。您可以对管道中的单个复制活动执行相同的操作。
在源数据集中提供直到容器的路径,并在复制活动源数据集中提供通配符路径。
在目标数据集中,给出目标文件夹位置的路径。不要给出任何文件路径。
将其交给复制活动接收器。
执行管道,源位置的所有文件将被复制到目标位置。