BigQuery参数化查询传入数组后仅返回首个元素结果的问题排查
BigQuery参数化查询传入数组后仅返回首个元素结果的问题排查
嗨,我帮你排查下这个问题,核心原因是你构造参数值的格式写错了,导致BigQuery没能正确解析数组里的所有元素。
看你代码里的这段参数构造:
'parameterValue': {'arrayValues': [{'value': i} for i in input_array]}
BigQuery的参数化查询对不同数据类型的参数值有固定的字段要求,字符串类型的元素不能用value这个键,得用stringValue才对。你现在用value的话,BigQuery只能识别数组里的第一个元素,自然就只返回CZ的结果了。
把这段代码改成下面这样就可以解决问题:
'parameterValue': {'arrayValues': [{'stringValue': i} for i in input_array]}
另外顺便提一句,你查询语句里的``应该是临时写的占位符,实际运行时记得替换成真实的表名哦,不过这个不是导致SK数据缺失的原因。
修改后再运行脚本,应该就能同时得到CZ和SK的销售数据啦。
备注:内容来源于stack exchange,提问作者refokaj
相关产品推荐
相关产品推荐

