pyspark.sql.functions.vector_normalize#

pyspark.sql.functions.vector_normalize(vector, degree=None)[source]#

Normalizes a float vector to unit length using the specified norm degree. Degree defaults to 2.0 (Euclidean norm) if unspecified.

Added in version 4.3.0.

Parameters:
vectorColumn or column name

input vector column.

degreeColumn or column name, optional

norm degree (1.0 for L1, 2.0 for L2, float(‘inf’) for infinity norm). Defaults to 2.0.

Returns:
Column

the normalized vector as an array of floats.

Examples

>>> from pyspark.sql import functions as sf
>>> from pyspark.sql.types import ArrayType, FloatType, StructType, StructField
>>> schema = StructType([StructField('v', ArrayType(FloatType()))])
>>> df = spark.createDataFrame([([3.0, 4.0],)], schema)
>>> df.select(sf.vector_normalize('v', sf.lit(2.0).cast('float'))).first()[0]
[0.6..., 0.8...]