Compartir vía


transformar

Devuelve una matriz de elementos después de aplicar una transformación a cada elemento de la matriz de entrada. Soporta Spark Connect.

Para obtener la función SQL de Databricks correspondiente, consulte transform function.

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.transform(col=<col>, f=<f>)

Parámetros

Parámetro Tipo Description
col pyspark.sql.Column o str Nombre de columna o expresión.
f function Función que se aplica a cada elemento de la matriz de entrada. Puede tomar una de las siguientes formas: Unary (x: Column) -> Column o Binary (x: Column, i: Column) -> Column , donde el segundo argumento es un índice basado en 0 del elemento.

Devoluciones

pyspark.sql.Column: una nueva matriz de elementos transformados.

Examples

Ejemplo 1: Transformación de elementos de matriz con una función simple

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 2, 3, 4])], ("key", "values"))
df.select(dbf.transform("values", lambda x: x * 2).alias("doubled")).show()
+------------+
|     doubled|
+------------+
|[2, 4, 6, 8]|
+------------+

Ejemplo 2: Transformación de elementos de matriz mediante índice

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 2, 3, 4])], ("key", "values"))
def alternate(x, i):
    return dbf.when(i % 2 == 0, x).otherwise(-x)
df.select(dbf.transform("values", alternate).alias("alternated")).show()
+--------------+
|    alternated|
+--------------+
|[1, -2, 3, -4]|
+--------------+