Compartir a través de


zip_with

Combine dos matrices dadas, en modo de elemento, en una sola matriz mediante una función . Si una matriz es más corta, los valores NULL se anexan al final para que coincidan con la longitud de la matriz más larga, antes de aplicar la función. Soporta Spark Connect.

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

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.zip_with(left=<left>, right=<right>, f=<f>)

Parámetros

Parámetro Tipo Description
left pyspark.sql.Column o str Nombre de la primera columna o expresión.
right pyspark.sql.Column o str Nombre de la segunda columna o expresión.
f function Una función binaria.

Devoluciones

pyspark.sql.Column: matriz de valores calculados derivados mediante la aplicación de una función dada a cada par de argumentos.

Examples

Ejemplo 1: Combinar dos matrices con una función simple

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 3, 5, 8], [0, 2, 4, 6])], ("id", "xs", "ys"))
df.select(dbf.zip_with("xs", "ys", lambda x, y: x ** y).alias("powers")).show(truncate=False)
+---------------------------+
|powers                     |
+---------------------------+
|[1.0, 9.0, 625.0, 262144.0]|
+---------------------------+

Ejemplo 2: Combinar matrices de diferentes longitudes

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, ["foo", "bar"], [1, 2, 3])], ("id", "xs", "ys"))
df.select(dbf.zip_with("xs", "ys", lambda x, y: dbf.concat_ws("_", x, y)).alias("xs_ys")).show()
+-----------------+
|            xs_ys|
+-----------------+
|[foo_1, bar_2, 3]|
+-----------------+