Bagikan melalui


to_variant_object

Mengonversi kolom yang berisi input berlapis (array/map/struct) menjadi varian di mana peta dan struktur dikonversi ke objek varian yang tidak diurutkan tidak seperti struct SQL. Peta input hanya dapat memiliki kunci string.

Syntax

from pyspark.sql import functions as sf

sf.to_variant_object(col)

Parameter-parameternya

Pengaturan Tipe Description
col pyspark.sql.Column atau str Kolom dengan skema berlapis atau nama kolom.

Pengembalian Barang

pyspark.sql.Column: kolom baru VariantType.

Examples

Contoh 1: Mengonversi array yang berisi struktur berlapis menjadi varian

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"}}]   |
+--------------------+