Udostępnij przez


to_variant_object

Konwertuje kolumnę zawierającą zagnieżdżone dane wejściowe (tablica/mapa/struktura) na warianty, w których mapy i struktury są konwertowane na obiekty wariantów, które są nieurządkowane w przeciwieństwie do struktur SQL. Mapy wejściowe mogą mieć tylko klucze ciągów.

Składnia

from pyspark.sql import functions as sf

sf.to_variant_object(col)

Parametry

Parameter Typ Description
col pyspark.sql.Column lub str Kolumna z zagnieżdżonym schematem lub nazwą kolumny.

Zwraca

pyspark.sql.Column: nowa kolumna VariantType.

Przykłady

Przykład 1. Konwertowanie tablicy zawierającej zagnieżdżonej struktury na wariant

from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StructType, StructField, StringType, MapType
schema = StructType([
    StructField("i", StringType(), True),
    StructField("v", ArrayType(StructType([
        StructField("a", MapType(StringType(), StringType()), True)
    ]), True))
])
data = [("1", [{"a": {"b": 2}}])]
df = spark.createDataFrame(data, schema)
df.select(sf.to_variant_object(df.v))
DataFrame[to_variant_object(v): variant]
df.select(sf.to_variant_object(df.v)).show(truncate=False)
+--------------------+
|to_variant_object(v)|
+--------------------+
|[{"a":{"b":"2"}}]   |
+--------------------+