バリアント爆発
バリアント オブジェクト/配列を、そのフィールド/要素を含む複数の行に分割します。結果スキーマはstruct<pos int, key string, value variant>です。posは親オブジェクト/配列内のフィールド/要素の位置であり、 valueはフィールド/要素の値です。key 、バリアント オブジェクトを展開する場合のフィールド名であり、バリアント配列を展開する場合は NULL です。SQL NULL、バリアント NULL、その他のバリアント値など、バリアント配列/オブジェクトではない入力はすべて無視されます。
構文
Python
spark.tvf.variant_explode(input)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 分解する値の入力列。 |
例
例1 : バリアント配列でvariant_explodeを使用する
Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode(sf.parse_json(sf.lit('["hello", "world"]'))).show()
Output
+---+----+-------+
|pos| key| value|
+---+----+-------+
| 0|NULL|"hello"|
| 1|NULL|"world"|
+---+----+-------+
例2 : バリアントオブジェクトでvariant_explodeを使用する
Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode(sf.parse_json(sf.lit('{"a": true, "b": 3.14}'))).show()
Output
+---+---+-----+
|pos|key|value|
+---+---+-----+
| 0| a| true|
| 1| b| 3.14|
+---+---+-----+
例3 : 空のバリアント配列でvariant_explodeを使用する
Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode(sf.parse_json(sf.lit('[]'))).show()
Output
+---+---+-----+
|pos|key|value|
+---+---+-----+
+---+---+-----+
例4 : 空のバリアントオブジェクトでvariant_explodeを使用する
Python
from pyspark.sql import functions as sf
spark.tvf.variant_explode(sf.parse_json(sf.lit('{}'))).show()
Output
+---+---+-----+
|pos|key|value|
+---+---+-----+
+---+---+-----+