Compartilhar via


transformação

Retorna uma matriz de elementos depois de aplicar uma transformação a cada elemento na matriz de entrada. Dá suporte ao Spark Connect.

Para a função SQL do Databricks correspondente, consulte a função transform.

Sintaxe

from pyspark.databricks.sql import functions as dbf

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

Parâmetros

Parâmetro Tipo Description
col pyspark.sql.Column ou str Nome da coluna ou expressão.
f function Uma função que é aplicada a cada elemento da matriz de entrada. Pode usar uma das seguintes formas: Unary (x: Column) -> Column ou Binary (x: Column, i: Column) -> Column , em que o segundo argumento é um índice baseado em 0 do elemento.

Devoluções

pyspark.sql.Column: uma nova matriz de elementos transformados.

Exemplos

Exemplo 1: transformar elementos de matriz com uma função simples

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

Exemplo 2: transformar elementos de matriz usando í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]|
+--------------+