在Azure数据工厂中将行计数转换为INT

时间:2020-04-06 19:48:59

标签: azure-data-factory dynamic-expression

我正在尝试使用Lookup Activity返回行数。我能够做到这一点,但是一旦我做到了,我想对它运行一个If语句,如果计数返回的行数超过20MIL,我想执行一条额外的管道以进行进一步的表操作。但是,问题是我无法将返回值与静态整数进行比较。下面是此If语句的当前动态表达式:

@greater(int(活动('COUNT_RL_WK_GRBY_LOOKUP'。输出),20000000)

,并在触发时返回以下错误: { “ errorCode”:“ InvalidTemplate”, “ message”:“使用无效的参数调用了函数'int'。该值无法转换为目标类型”, “ failureType”:“ UserError”, “ target”:“如果Condition1”, “细节”: ”” }

是否可以将此返回值转换为整数以便进行比较?如果没有,是否有可能变通以达到我想要的结果?

1 个答案:

答案 0 :(得分:0)

动态问题似乎出在问题所在。请更正与以下类似的动态表达式,然后重试。

  • 如果from PyQt5.QtWidgets import * def add_widget(layout): label = QLabel('c') layout.addWidget(label, 3, 0) return label 设置为true:firstRowOnly

  • 如果@greater(int(activity('COUNT_RL_WK_GRBY_LOOKUP').output.firstRow.propertyname),20000000)设置为false:firstRowOnly

  • 查找结果将在活动运行结果的@greater(int(activity('COUNT_RL_WK_GRBY_LOOKUP').output.value[zero based index].propertyname),20000000)部分中返回。

  • output设置为true(默认值)时,输出格式如下代码所示。查找结果在固定的firstRow键下。要在后续活动中使用结果,请使用firstRowOnly模式。 输出JSON示例代码如下:
@{activity('MyLookupActivity').output.firstRow.TableName}
  • { "firstRow": { "Id": "1", "TableName" : "Table1" } } 设置为false时,输出格式如下代码所示。计数字段指示返回多少记录。详细值显示在固定值数组下。在这种情况下,Lookup活动之后是Foreach活动。您可以使用firstRowOnly模式将值数组传递到ForEach活动项目字段。要访问值数组中的元素,请使用以下语法:@activity('MyLookupActivity').output.value。一个示例是@{activity('lookupActivity').output.value[zero based index].propertyname}。 示例输出JSON代码如下:
@{activity('lookupActivity').output.value[0].tablename}

希望这会有所帮助。