to_variant_object
ネストされた入力 (配列/マップ/構造体) を含む列をバリアントに変換します。マップと構造体は、SQL 構造体とは異なり順序付けられていないバリアント オブジェクトに変換されます。入力マップには文字列キーのみを含めることができます。
構文
Python
from pyspark.sql import functions as sf
sf.to_variant_object(col)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| ネストされたスキーマまたは列名を持つ列。 |
戻り値
pyspark.sql.Column: VariantType の新しい列。
例
例1 : ネストされた構造体を含む配列をバリアントに変換する
Python
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))
Output
DataFrame[to_variant_object(v): variant]
Python
df.select(sf.to_variant_object(df.v)).show(truncate=False)
Output
+--------------------+
|to_variant_object(v)|
+--------------------+
|[{"a":{"b":"2"}}] |
+--------------------+