L2_DISTANCE

更新时间:
复制 MD 格式

L2_DISTANCE函数用于计算两个向量之间的 L2 欧式距离。

说明

L2距离,也称为欧氏距离,是衡量向量空间中两个向量之间距离的指标。该距离的计算方法是:将两个向量元素的平方差求和,然后开平方根。距离的值可以大于零。如果距离为零,则两个向量完全相同。距离越大,表示两个向量之间的距离越远。

命令格式

FLOAT L2_DISTANCE( <vector>, <vector> )

参数说明

vector:必填。VECTOR类型。用于计算欧式距离的向量值。

返回值说明

返回FLOAT类型,表示两个输入向量之间的欧式距离。

向量函数经过优化,可能会降低浮点精度。此函数的结果误差范围最大可达1e-4

使用示例

-- 开启VECTOR数据类型
set odps.sql.type.vector.enable=true;
set odps.sql.type.system.odps2=true;

-- 准备数据
CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT CAST(ARRAY(1.1,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(1.0,1.0,1.0) AS VECTOR(FLOAT,3));
INSERT INTO vectors SELECT CAST(ARRAY(1.0,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(4.0,6.0,8.0) AS VECTOR(FLOAT,3));

-- 计算a,b之间的欧式距离
SELECT L2_DISTANCE(a, b) FROM vectors;

-- 返回结果
+------------+
| _c0        | 
+------------+
| 5.449999809265137 | 
| 48.439998626708984 | 
+------------+