Compartir a través de


vector_norm Función

Se aplica a:check marcado yes Databricks Runtime 18.1 y versiones posteriores

Calcula la norma Lp de un vector mediante el grado especificado.

Sintaxis

vector_norm(vector [, degree ])

Argumentos

  • vector: expresión ARRAY<FLOAT> que representa el vector.
  • degree: Opcional. Valor FLOAT que especifica el tipo de norma; el valor predeterminado es 2.0 (norma euclidiana). Valores compatibles:
    • 1.0 — Norma L1 (Manhattan): suma de valores absolutos
    • 2.0 — Norma L2 (Euclideano): raíz cuadrada de suma de cuadrados
    • float('inf') — L∞ (norma infinita): valor absoluto máximo

Devoluciones

Valor FLOAT que representa la norma del vector. El resultado no es negativo.

Devuelve 0,0 para vectores vacíos. Devuelve NULL si la entrada es NULL o contiene NULL.

Notas

  • Solo ARRAY<FLOAT> se admite; otros tipos como ARRAY<DOUBLE> o ARRAY<DECIMAL> generan un error. Un valor no admitido degree genera INVALID_VECTOR_NORM_DEGREE.
  • La norma L2 es la más común en cargas de trabajo de inserción densas; L1 se utiliza en aplicaciones dispersas y probabilísticas; L∞ se usa en el peor de los casos.

Condiciones del error

Ejemplos

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