Поделиться через


vector_l2_distance функция

Область применения:check помечена да Databricks Runtime 18.1 и выше

Вычисляет расстояние Евклидана (L2) между двумя векторами.

Синтаксис

vector_l2_distance(vector1, vector2)

Аргументы

  • vector1: ARRAY<FLOAT> выражение, представляющее первый вектор.
  • vector2: ARRAY<FLOAT> выражение, представляющее второй вектор.

Возвраты

FLOAT Значение, представляющее расстояние эвклиды между двумя векторами. Результат не является отрицательным, где 0,0 указывает идентичные векторы.

Возвращает значение 0.0 для пустых векторов. Возвращает значение NULL , если входные данные или NULL содержатся NULL.

Примечания

  • Поддерживается только ARRAY<FLOAT> другие типы, например ARRAY<DOUBLE> или ARRAY<DECIMAL> возникают ошибки.
  • Оба вектора должны иметь одинаковое измерение; в противном случае функция вызывает VECTOR_DIMENSION_MISMATCH.
  • Более низкие значения указывают на большее сходство (более близкие векторы); также известное как Евклидеан расстояние.

Условия ошибок

Примеры

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