问题描述
我当前正在使用“派生”列创建数据流,该列通过DontNet.SDK进行了舍入转换。我使用的Source和Sink数据集已参数化。我正在通过管道参数在运行时为其分配值。请参考下面两个数据流的json文件。
我有一种情况是将薪水从三个小数点四舍五入到两个小数点。当我在ADF中手动创建时,它就可以成功舍入。下面是转换的输出结果文件
但是,当我使用.net SDK创建此文件时,它不起作用。我没有获得预期的列名,但是值正确。下面是.SDK输出
下面是我创建的数据流的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"
}
}
}
请帮助。