通过


vector_norm 函数

适用于:检查标记为“是”的 Databricks Runtime 18.1 及更高版本

使用指定的度计算向量的 Lp 规范。

Syntax

vector_norm(vector [, degree ])

Arguments

  • vector:表示 ARRAY<FLOAT> 向量的表达式。
  • degree:可选。 指定 FLOAT 规范类型的值;默认值为 2.0(Euclidean norm)。 支持的值:
    • 1.0 — L1 norm (曼哈顿): 绝对值之和
    • 2.0 - L2 norm (Euclidean): 平方平方根的平方根
    • float('inf') — L∞ (无穷大规范): 最大绝对值

退货

一个 FLOAT 表示向量规范的值。 结果为非负。

为空向量返回 0.0。 返回 NULL 输入是否为 NULL 或包含 NULL

备注

  • ARRAY<FLOAT> 受支持;其他类型的(例如 ARRAY<DOUBLE>ARRAY<DECIMAL> 引发错误)。 不支持 degree 的值会引发 INVALID_VECTOR_NORM_DEGREE
  • L2 规范是密集嵌入工作负载中最常见的一种:L1 用于稀疏和概率应用程序;L∞用于最坏的情况分析。

错误条件

示例

-- L2 norm (Euclidean) - classic 3-4-5 triangle
> SELECT vector_norm(array(3.0f, 4.0f), 2.0f);
  5.0

-- L1 norm (Manhattan)
> SELECT vector_norm(array(3.0f, 4.0f), 1.0f);
  7.0

-- L∞ norm (infinity)
> SELECT vector_norm(array(3.0f, 4.0f), float('inf'));
  4.0

-- Empty vector returns 0.0
> SELECT vector_norm(array(), 2.0);
  0.0