Pular para o conteúdo principal

zip_com

Combinar dois arrays dados, elemento por elemento, em um único array usando uma função. Se um dos arrays for mais curto, valores nulos são adicionados ao final para corresponder ao comprimento do array mais longo, antes de aplicar a função. Compatível com Spark Connect.

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

Sintaxe

Python
from pyspark.databricks.sql import functions as dbf

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

Parâmetros

Parâmetro

Tipo

Descrição

left

pyspark.sql.Column ou str

Nome da primeira coluna ou expressão.

right

pyspark.sql.Column ou str

Nome da segunda coluna ou expressão.

f

function

Uma função binária.

Devoluções

pyspark.sql.Column: matriz de valores calculados, obtidos pela aplicação da função fornecida a cada par de argumentos.

Exemplos

Exemplo 1 : Combinando duas matrizes com uma função simples

Python
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)
Output
+---------------------------+
|powers |
+---------------------------+
|[1.0, 9.0, 625.0, 262144.0]|
+---------------------------+

Exemplo 2 : Combinando matrizes de comprimentos diferentes

Python
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()
Output
+-----------------+
| xs_ys|
+-----------------+
|[foo_1, bar_2, 3]|
+-----------------+