Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure数据工厂中的数据流舍入转换工作不正常_Azure_Azure Data Factory_Dataflow_Azure Sdk .net - Fatal编程技术网

Azure数据工厂中的数据流舍入转换工作不正常

Azure数据工厂中的数据流舍入转换工作不正常,azure,azure-data-factory,dataflow,azure-sdk-.net,Azure,Azure Data Factory,Dataflow,Azure Sdk .net,我目前正在使用一个派生列创建数据流,该列通过DontNet.SDK进行舍入转换。我使用的源和接收器数据集是参数化的。我在运行时通过管道参数为它们赋值。请参考以下两个数据流的json文件 我有一个场景,工资从三个小数点四舍五入到两个小数点。当我在ADF中手动创建它时,它已成功舍入。下面是转换的输出结果文件 但是,当我使用.NETSDK创建它时,它不起作用。我没有得到预期的列名,但值正确。下面是.SDK输出 下面是我创建的数据流的Json格式 { "name": "

我目前正在使用一个派生列创建数据流,该列通过DontNet.SDK进行舍入转换。我使用的源和接收器数据集是参数化的。我在运行时通过管道参数为它们赋值。请参考以下两个数据流的json文件

我有一个场景,工资从三个小数点四舍五入到两个小数点。当我在ADF中手动创建它时,它已成功舍入。下面是转换的输出结果文件

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

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

{
"name": "Rounding_Auto__Transformation",
"properties": {
    "type": "MappingDataFlow",
    "typeProperties": {
        "sources": [
            {
                "dataset": {
                    "referenceName": "defaultdataflowSourcedataset",
                    "type": "DatasetReference"
                },
                "name": "source"
            }
        ],
        "sinks": [
            {
                "dataset": {
                    "referenceName": "defaultdataflowSinkdataset",
                    "type": "DatasetReference"
                },
                "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\tvalidateSchema: false,\n\tpartitionFileNames:['customer_post_with_round.csv'],\n\tpartitionBy('hash', 1),\n\tskipDuplicateMapInputs: true,\n\tskipDuplicateMapOutputs: true) ~> sink"
    }
}
}

我还直接在ADF中比较了为手册创建的json(在它工作时),这里是为手册创建的json

{
"name": "Rounding_Manually",
"properties": {
    "type": "MappingDataFlow",
    "typeProperties": {
        "sources": [
            {
                "dataset": {
                    "referenceName": "SourcDS",
                    "type": "DatasetReference"
                },
                "name": "source1"
            }
        ],
        "sinks": [
            {
                "dataset": {
                    "referenceName": "SinkDS",
                    "type": "DatasetReference"
                },
                "name": "sink1"
            }
        ],
        "transformations": [
            {
                "name": "DerivedColumn1"
            }
        ],
        "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) ~> source1\nsource1 derive(NewSal = round(toFloat(sal),2,2)) ~> DerivedColumn1\nDerivedColumn1 sink(allowSchemaDrift: true,\n\tvalidateSchema: false,\n\tpartitionFileNames:['customer_post_with_round.csv'],\n\tpartitionBy('hash', 1),\n\tskipDuplicateMapInputs: true,\n\tskipDuplicateMapOutputs: true) ~> sink1"
    }
}
}


请提供帮助。

我在我的环境中导入了您的数据流定义,并且在元数据检查和映射列表中确实看到了列名。您是否可以执行相同的操作,将数据流脚本复制/粘贴到UI中,并确保您看到的一切都很好


您能否比较这两种模式的
Sink
数据集模式。sdk案例的dataset架构似乎没有定义列标题“New sal”。JSON输出将数据流脚本填充到一行中。你能改为粘贴在可读版本的脚本中吗?ADF数据流设计器UI顶部有一个脚本按钮。@KrishnenduGhosh MSFT,因为我使用的是参数化数据集,架构将在管道之间更改,但我将尝试从SDK将架构绑定到数据集。我会和你联系的answer@MarkKromer,这是我在ADF中手动创建的,source(输出(id为string,sal为string,gender为string,name为string,isMarried为string,tags为string,address为string),allowSchemaDrift:true,validateSchema:false,ignoreNoFilesFound:false)~>source1 source1(NewSal=round(toFloat(sal),2,2))~>DerivedColumn1-DerivedColumn1-sink(allowSchemaDrift:true,validateSchema:false,partitionfilename:['customer\u post\u with_round.csv'],partitionBy('hash',1),skipDuplicateMapInputs:true,skipduplicatemappoutputs:true)~>sink1我通过SDK创建的这个,source(output)(id作为字符串,sal作为字符串,性别作为字符串,名称作为字符串,isMarried作为字符串,tags作为字符串,address作为字符串,NewSal作为字符串),allowSchemaDrift:true,validateSchema:false,ignoreNoFilesFound:false)~>源派生(NewSal=round(toFloat(sal),2,2))~>deriveColumn0 deriveColumn0 sink(allowSchemaDrift:true,validateSchema:false,分区文件名:['customer_post_with_round.csv'],分区依据('hash',1),skipDuplicateMapInputs:true,skipDuplicateMapOutputs:true)~>sinkYes这在我的映射中也是一样的。但是新列没有保存在目标文件中。你能在此创建Azure票证吗?我想让工程部的人看看这是否是一个有效的错误。