Dela via


funktion vector_norm

Gäller för:check markerat ja Databricks Runtime 18.1 och senare

Beräknar lp-normen för en vektor med den angivna graden.

Syntax

vector_norm(vector [, degree ])

Arguments

  • vektor: Ett ARRAY<FLOAT> uttryck som representerar vektorn.
  • grad: Valfritt. Ett FLOAT värde som anger normtypen. Standardvärdet är 2,0 (euklidisk norm). Värden som stöds:
    • 1.0 – L1 norm (Manhattan): summan av absoluta värden
    • 2.0 – L2 norm (Euklidiska): kvadratrot av summan av kvadrater
    • float('inf') — L∞ (oändlighetsnorm): högsta absoluta värde

Retur

Ett FLOAT värde som representerar normen för vektorn. Resultatet är icke-negativt.

Returnerar 0.0 för tomma vektorer. Returnerar NULL om indata är NULL eller innehåller NULL.

Notes

  • Endast ARRAY<FLOAT> stöds, andra typer, till exempel ARRAY<DOUBLE> eller ARRAY<DECIMAL> skapar ett fel. Ett värde som degree inte stöds genererar INVALID_VECTOR_NORM_DEGREE.
  • L2-normen är den vanligaste i arbetsbelastningar för tät inbäddning. L1 används i glesa och probabilistiska program; L∞ används i värsta fall analys.

Feltillstånd

Exempel

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