S02027
错误代码
S02027
报错信息
The length of the vector returned by the UDF specified in SELECT must be the same as the length of the CONTEXT BY column. RefId:S02027
错误原因
当 context by 查询中 select 子句使用了自定义函数,且该函数返回值的长度不等于对 context by
的列分组后每个组内的数据长度时,会出现该报错。如下例,oneRow
函数只返回一行,其长度不等于组内数据长度,出现报错:
context by 查询中 select 子句包含用户自定义函数,且这一列的长度不等于组内数据长度。如以下场景中,oneRow
函数只返回一行,长度不等于组内数据长度,所以会出现报错。
n = 10000
id = take(1..10, n)
value = take(1..10, n)
t = table(id, value)
def oneRow(col) {
return col[0:1]
}
select oneRow(value) from t context by id
解决方案
检查用户自定义函数的返回值。