Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Colección: combina dos asignaciones dadas en un único mapa aplicando una función a los pares clave-valor. Soporta Spark Connect.
Para obtener la función SQL de Databricks correspondiente, consulte map_zip_with function.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.map_zip_with(col1=<col1>, col2=<col2>, f=<f>)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
col1 |
pyspark.sql.Column o str |
Nombre de la primera columna o expresión de columna que representa el primer mapa. |
col2 |
pyspark.sql.Column o str |
Nombre de la segunda columna o una expresión de columna que representa el segundo mapa. |
f |
function |
Función ternaria que define cómo combinar los valores de los dos mapas. Esta función debe devolver una columna que se usará como valor en el mapa resultante. |
Devoluciones
pyspark.sql.Column: una nueva columna de mapa donde cada par clave-valor es el resultado de aplicar la función a los pares clave-valor correspondientes en los mapas de entrada.
Examples
Ejemplo 1: Combinar dos mapas con una función simple
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([
(1, {"A": 1, "B": 2}, {"A": 3, "B": 4})],
("id", "map1", "map2"))
row = df.select(
dbf.map_zip_with("map1", "map2", lambda _, v1, v2: v1 + v2).alias("updated_data")
).head()
sorted(row["updated_data"].items())
[('A', 4), ('B', 6)]
Ejemplo 2: Combinar dos mapas con claves no coincidedas
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([
(1, {"A": 1, "B": 2}, {"B": 3, "C": 4})],
("id", "map1", "map2"))
row = df.select(
dbf.map_zip_with("map1", "map2",
lambda _, v1, v2: dbf.when(v2.isNull(), v1).otherwise(v1 + v2)
).alias("updated_data")
).head()
sorted(row["updated_data"].items())
[('A', 1), ('B', 5), ('C', None)]