当文件名未知时如何从 ADF 中的“获取元数据”活动获取文件

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

我在第 2 代数据湖的 ODS 层中有一个文件,该文件从源转换为镶木地板。每次加载到 ODS 层时该名称都会更改。我希望能够在 ADF 中获取 .snappy.parquet 文件,无论当时的文件名是什么。我目前的数据集如下所示:

我认为像这样设置“获取元数据”活动会抓取镶木地板文件,无论文件名如何:

但这行不通。它说找不到该文件。 文件夹中始终只有一个以 .snappy.parquet 结尾的文件 - 有没有一种方法可以在不知道文件名的情况下获取该文件?字段列表必须设置为“大小”,因为这是我在管道的下一步中需要进行比较的内容。

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

您在获取元数据活动文件路径中使用通配符文件路径。目前,获取元数据活动不支持它。

要实现您的要求,请按照以下方法操作。

首先删除数据集中的文件路径参数,只保留文件夹路径参数。提供您的文件夹路径并在获取元数据活动中使用子项目属性。

enter image description here

这将给出文件夹中的所有文件列表,如下所示。

enter image description here

由于您只有一个

.snappy.parquet
文件,请使用如下所示的过滤器活动过滤该文件。

Items : @activity('Get Metadata1').output.childItems
Condition : @endswith(item().name, '.snappy.parquet')

enter image description here

它将在输出中给出所需的文件名。

enter image description here

现在,使用另一个带有文件夹路径和文件名数据集参数的获取元数据活动,并提供所需的属性

size

为 filename 参数指定上述过滤器输出文件名。

@activity('Filter1').output.value[0].name

enter image description here

它将给出如下所示的所需结果。

enter image description here

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