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 |
+------------+