Condividi tramite


Trasformare

Restituisce una matrice di elementi dopo aver applicato una trasformazione a ogni elemento nella matrice di input. Supporta Spark Connect.

Per la funzione SQL di Databricks corrispondente, vedere transform funzione.

Sintassi

from pyspark.databricks.sql import functions as dbf

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

Parametri

Parametro TIPO Description
col pyspark.sql.Column o str Nome della colonna o dell'espressione.
f function Funzione applicata a ogni elemento della matrice di input. Può accettare una delle forme seguenti: Unario (x: Column) -> Column o Binary (x: Column, i: Column) -> Column in cui il secondo argomento è un indice in base 0 dell'elemento.

Restituzioni

pyspark.sql.Column: nuova matrice di elementi trasformati.

Esempi

Esempio 1: Trasformare gli elementi della matrice con una funzione semplice

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

Esempio 2: Trasformare gli elementi della matrice usando l'indice

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