我在Azure Datafactory中有一个由CSV文件支持的数据集。我在数据集中添加了一个额外的列,并希望从数据集参数传递它的值,但值从未复制到列
"type": "AzureBlob",
"structure":
[
{
"name": "MyField",
"type": "String"
}
]
我也有一个定义的参数
"parameters": {
"MyParameter": {
"type": "String",
"defaultValue": "ABC"
}
}
如何将参数值复制到Column?我试着跟随但不工作
"type": "AzureBlob",
"structure":
[
{
"name": "MyField",
"type": "String",
"value": "@dataset().MyParameter"
}
]
但这并不奏效。虽然参数值设置为,但我在目标中得到NULL
基于Azure数据工厂中的文档:表达式和函数,到目前为止,Azure数据工厂不支持@dataset().XXX
。因此,您不能使用参数值作为自定义列直接进入本机复制活动的接收器或源。
然而,您可以采用以下解决方案:
1.你可以创建一个自定义活动并编写代码来做任何你需要的事情。
2.您可以将csv
文件暂存在azure数据湖中,然后执行U-SQL
脚本从文件中读取数据,并使用管道rundId
附加新列。然后将其输出到数据湖中的一个新区域,以便管道的其余部分可以拾取数据。要做到这一点,您只需要简单地从ADF向U-SQL传递一个Parameter。请参阅U-SQL活动。
在这个线程中:使用adf管道参数作为源到汇列的映射,客户使用第二种方式。