在Azure数据工厂中使用数据流进行舍入转换无法正常工作

问题描述

我当前正在使用“派生”列创建数据流,该列通过DontNet.SDK进行了舍入转换。我使用的Source和Sink数据集已参数化。我正在通过管道参数在运行时为其分配值。请参考下面两个数据流的json文件

enter image description here

我有一种情况是将薪水从三个小数点四舍五入到两个小数点。当我在ADF中手动创建时,它就可以成功舍入。下面是转换的输出结果文件

enter image description here

但是,当我使用.net SDK创建此文件时,它不起作用。我没有获得预期的列名,但是值正确。下面是.SDK输出

enter image description here

下面是我创建的数据流的Json格式

{
"name": "Rounding_Auto__Transformation","properties": {
    "type": "MappingDataFlow","typeProperties": {
        "sources": [
            {
                "dataset": {
                    "referenceName": "defaultdataflowSourcedataset","type": "DatasetReference"
                },"name": "source"
            }
        ],"sinks": [
            {
                "dataset": {
                    "referenceName": "defaultdataflowSinkdataset","name": "sink"
            }
        ],"transformations": [
            {
                "name": "DerivedColumn0"
            }
        ],"script": "source(output(\n\t\tid as string,\n\t\tsal as string,\n\t\tgender as string,\n\t\tname as string,\n\t\tisMarried as string,\n\t\ttags as string,\n\t\taddress as string\n\t),\n\tallowSchemaDrift: true,\n\tvalidateSchema: false,\n\tignoreNoFilesFound: false) ~> source\nsource derive(NewSal = round(toFloat(sal),2,2)) ~> DerivedColumn0\nDerivedColumn0 sink(allowSchemaDrift: true,\n\tpartitionFileNames:['customer_post_with_round.csv'],\n\tpartitionBy('hash',1),\n\tskipDuplicateMapInputs: true,\n\tskipDuplicateMapOutputs: true) ~> sink"
    }
}

}

我还直接比较了在ADF中为手册创建的json(因为它可以正常工作)–这是手册中的

{
"name": "Rounding_Manually","typeProperties": {
        "sources": [
            {
                "dataset": {
                    "referenceName": "SourcDS","name": "source1"
            }
        ],"sinks": [
            {
                "dataset": {
                    "referenceName": "SinkDS","name": "sink1"
            }
        ],"transformations": [
            {
                "name": "DerivedColumn1"
            }
        ],\n\tignoreNoFilesFound: false) ~> source1\nsource1 derive(NewSal = round(toFloat(sal),2)) ~> DerivedColumn1\nDerivedColumn1 sink(allowSchemaDrift: true,\n\tskipDuplicateMapOutputs: true) ~> sink1"
    }
}

}

请帮助。

解决方法

我在您的环境中导入了您的数据流定义,并且在元数据检查和映射列表中确实看到了列名。您能做同样的事情并将数据流脚本复制/粘贴到UI中,并确保在那里一切正常吗?

enter image description here