在 Azure 数据工厂的复制活动中添加其他列时如何引用表达式中的序数列

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

我只是尝试从没有标题的文本文件中的列中修剪空格,但在 ADF 的复制活动中添加附加列时无法引用序数列。

这是在尝试使用“自定义”选项但序数不显示时的情况。 在此输入图片描述

我期望序数列显示在下拉列表中以在表达式中使用。就像文件有标题行并且您在下拉列表中看到列一样。

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

一般来说,如果 csv 文件中没有标题,复制活动附加列将显示如下列名称。

enter image description here

您没有收到这些信息的可能原因可能是不存在文件或文件中没有数据。当您在 for-each 循环内使用动态复制活动时,您需要确保文件存在或不存在于给定的数据位置。

enter image description here

根据您的要求,可能无法使用复制活动,因为您无法编辑或获取列值。如果您尝试通过在新附加列的动态表达式中指定列名称来

trim()
,您可以看到它给出错误,指出它为无法识别的表达式

enter image description here

您需要使用ADF Dataflow进行此类操作。

使用 csv 文件创建数据流源,并通过循环内的数据集参数将文件名传递给数据流活动。

在源之后,添加派生列转换并创建新列。在这里,您可以使用数据流表达式处理列和行数据。使用以下表达式修剪现有列。

在这里,如果您正在处理动态数据集,下面的表达式将检查列名称

_col0_
并给出值(如果存在)。如果没有,它将给出空行。

trim(toString(byName('_col0_')))

enter image description here

在其后添加接收器数据集,数据流将从管道执行。

结果:

enter image description here

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