Delen via


vector_l2_distance functie

Van toepassing op:controleren gemarkeerd als Ja Databricks Runtime 18.1 en hoger

Berekent de Euclidische afstand (L2) tussen twee vectoren.

Syntaxis

vector_l2_distance(vector1, vector2)

Argumenten

  • vector1: een ARRAY<FLOAT> expressie die de eerste vector vertegenwoordigt.
  • vector2: Een ARRAY<FLOAT> expressie die de tweede vector vertegenwoordigt.

Retouren

Een FLOAT waarde die de Euclidische afstand tussen de twee vectoren aangeeft. Het resultaat is niet-negatief, waarbij 0,0 identieke vectoren aangeeft.

Retourneert 0,0 voor lege vectoren. Retourneert NULL of invoer is NULL of bevat NULL.

Aantekeningen

  • Alleen ARRAY<FLOAT> wordt ondersteund; andere typen, zoals ARRAY<DOUBLE> of ARRAY<DECIMAL> genereren van een fout.
  • Beide vectoren moeten dezelfde dimensie hebben; anders wordt de functie VECTOR_DIMENSION_MISMATCH.
  • Lagere waarden geven een grotere gelijkenis aan (dichtere vectoren); ook wel euclidische afstand genoemd.

Foutvoorwaarden

Examples

-- Basic L2 distance
> SELECT vector_l2_distance(array(1.0f, 2.0f, 3.0f), array(4.0f, 5.0f, 6.0f));
  5.196152422706632

-- Distance between identical vectors
> SELECT vector_l2_distance(array(1.0f, 2.0f), array(1.0f, 2.0f));
  0.0

-- Classic 3-4-5 triangle
> SELECT vector_l2_distance(array(0.0f, 0.0f), array(3.0f, 4.0f));
  5.0