Freigeben über


create_map

Erstellt eine neue Kartierungsspalte aus einer geraden Anzahl von Eingabespalten oder Spaltenbezügen. Die Eingabespalten werden in Schlüsselwertpaare gruppiert, um eine Zuordnung zu bilden. Beispielsweise würde die Eingabe (Key1, Wert1, Schlüssel2, Wert2, ...) eine Karte erzeugen, die Schlüssel1 mit Wert1, Schlüssel2 mit Wert2 usw. verknüpft. Die Funktion unterstützt auch das Gruppieren von Spalten als Liste.

Syntax

from pyspark.sql import functions as sf

sf.create_map(*cols)

Die Parameter

Parameter Typ Description
cols pyspark.sql.Column oder str Die Eingabespaltennamen oder Column-Objekte sind in Schlüsselwertpaare gruppiert. Diese können auch als Eine Liste von Spalten ausgedrückt werden.

Rückkehr

pyspark.sql.Column: Eine neue Spalte des Kartentyps, wobei jeder Wert eine Zuordnung ist, die aus den entsprechenden Schlüsselwertpaaren gebildet wird, die in den Eingabeargumenten angegeben sind.

Examples

Beispiel 1: Grundlegende Verwendung von create_map Funktion.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map('name', 'age')).show()
+--------------+
|map(name, age)|
+--------------+
|  {Alice -> 2}|
|    {Bob -> 5}|
+--------------+

Beispiel 2: Verwendung von create_map Funktion mit einer Liste von Spalten.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5)], ("name", "age"))
df.select(sf.create_map([df.name, df.age])).show()
+--------------+
|map(name, age)|
+--------------+
|  {Alice -> 2}|
|    {Bob -> 5}|
+--------------+

Beispiel 3: Verwendung von create_map Funktion mit mehr als einem Schlüsselwertpaar.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2, "female"),
    ("Bob", 5, "male")], ("name", "age", "gender"))
df.select(sf.create_map(sf.lit('name'), df['name'],
    sf.lit('gender'), df['gender'])).show(truncate=False)
+---------------------------------+
|map(name, name, gender, gender)  |
+---------------------------------+
|{name -> Alice, gender -> female}|
|{name -> Bob, gender -> male}    |
+---------------------------------+

Beispiel 4: Verwendung von create_map Funktion mit Werten unterschiedlicher Typen.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2, 22.2),
    ("Bob", 5, 36.1)], ("name", "age", "weight"))
df.select(sf.create_map(sf.lit('age'), df['age'],
    sf.lit('weight'), df['weight'])).show(truncate=False)
+-----------------------------+
|map(age, age, weight, weight)|
+-----------------------------+
|{age -> 2.0, weight -> 22.2} |
|{age -> 5.0, weight -> 36.1} |
+-----------------------------+