다음을 통해 공유


to_variant_object

중첩된 입력(배열/맵/구조체)이 포함된 열을 맵 및 구조체가 SQL 구조체와 달리 순서가 지정되지 않은 variant 개체로 변환되는 변형으로 변환합니다. 입력 맵에는 문자열 키만 있을 수 있습니다.

문법

from pyspark.sql import functions as sf

sf.to_variant_object(col)

매개 변수

매개 변수 유형 Description
col pyspark.sql.Column 또는 str 중첩된 스키마 또는 열 이름을 가진 열입니다.

Returns

pyspark.sql.Column: VariantType의 새 열입니다.

예시

예제 1: 중첩된 구조체가 포함된 배열을 변형으로 변환

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