【发布时间】:2021-12-08 18:48:33
【问题描述】:
我尝试将管道参数传递给数据流活动,同时尝试传递我的目录/文件夹的值。正如concat('myArchive/', $myFolderDF) 给我的错误:Column operands are not allowed in literal expressions。我尝试使用这个'{$myFolderDF}' 并仍然得到错误。您能否指导我在数据流活动中使用表达式中的参数。
JSON:
parameters{
myFolderDF as string
}
source(allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
format: 'csv',
fileSystem: 'FileSource',
folderPath: (concat('myFileArchive/',$myFolderDF)),
fileName: (concat(lower($myFolderDF),'.csv')),
documentForm: 'documentPerLine') ~> DFSource
DFSource sink(allowSchemaDrift: true,
validateSchema: false,
format: 'csv',
fileSystem: 'FileArchive',
folderPath: (concat('myFileArchive/',$myFolderDF)),
partitionFileNames:[(concat($myFolderDF,toString(currentTimestamp(),'MMddyyyy'),'.csv'))],
umask: 0022,
preCommands: [],
postCommands: [],
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true,
saveOrder: 0,
partitionBy('hash', 1)) ~> DFFileArchive
【问题讨论】:
-
您可能需要尝试
@concat('myArchive/', '@{pipeline().parameters.myFolderDF}')之类的方法。确保您的参数/变量用大括号{ }括起来并与@关联 -
您可以在数据集本身中硬编码“myarchive/”,也可以在通配符路径下的源选项下提及。通过传递@{pipeline().parameters.myFolderDF} 使数据流参数表达式保持简单。在数据流中,您可以简单地将其用作 $dataflowparamname
-
嗨@ray,我为参数标记尝试了花括号,但仍然得到同样的错误。
-
嗨@AllAboutBI,我也试过你的方法,得到了同样的错误。
标签: azure-data-factory azure-data-factory-2 azure-data-factory-pipeline azure-data-flow