Azure Data Factory中如何将字符串转为整数设置数据流参数?
解决Azure Data Factory中浮点转整数的报错问题
我之前也碰到过一模一样的报错,本质原因很简单:你传给int()函数的字符串不是合法的纯整数字符串——毕竟你的data_space_MB是浮点数值,转成字符串后会带小数部分(比如"512.75"),而ADF的int()函数只能解析没有小数、非数字字符的纯整数字符串,自然会抛出类型转换错误。
下面是几个经过验证的可行方案,你可以根据自己的需求选择:
方案1:直接对浮点值取整后存入变量
不需要先把浮点值转成原始字符串再存变量,在Set Variable活动里直接处理成整数格式的字符串:
@string(floor(activity('你的Lookup活动名称').output.firstRow.data_space_MB))
如果需要四舍五入而不是直接舍去小数部分,把floor()换成round()即可:
@string(round(activity('你的Lookup活动名称').output.firstRow.data_space_MB))
之后再用@int(variables('table_size_var'))就不会报错了,因为变量里已经是纯整数字符串(比如"512")。
方案2:截取浮点字符串的整数部分
如果一定要先存储带小数的浮点字符串,那在转整数的时候用split()截取小数点前的内容:
@int(split(variables('table_size_var'), '.')[0])
这个方法会直接舍去小数部分,适合只需要整数位的场景。
方案3:用浮点类型中转后转整数
也可以先把字符串转回浮点类型,再转整数,ADF会自动处理小数截断:
@int(float(variables('table_size_var')))
注意这个方法要求你的table_size_var是合法的浮点格式字符串,不能有空值、null或者非数字内容。
最后额外提醒两个排查点:
- 确认Lookup活动返回的
data_space_MB确实是有效的浮点值,没有空值、null或者乱码 - 可以在Set Variable活动后加一个Debug活动,查看
table_size_var的实际值,确认格式是否符合预期
内容的提问来源于stack exchange,提问作者virtualdvid
相关产品推荐
相关产品推荐

