try_variant_get
pathに従ってvからサブバリアントを抽出し、そのサブバリアントをtargetTypeにキャストします。パスが存在しないかキャストが失敗した場合は null を返します。
構文
Python
from pyspark.sql import functions as sf
sf.try_variant_get(v, path, targetType)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| バリアント列または列名。 |
|
| 抽出パスの文字列、または抽出パスを表す文字列を含む列。 有効なパスは |
| str | DDL 形式の文字列で、キャストするターゲット データ型。 |
戻り値
pyspark.sql.Column: 抽出された結果を表すtargetTypeの列
例
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([ {'json': '''{ "a" : 1 }''', 'path': '$.a'} ])
v = sf.parse_json(df.json)
df.select(sf.try_variant_get(v, "$.a", "int").alias("r")).collect()
Output
[Row(r=1)]
Python
df.select(sf.try_variant_get(v, "$.b", "int").alias("r")).collect()
Output
[Row(r=None)]
Python
df.select(sf.try_variant_get(v, "$.a", "binary").alias("r")).collect()
Output
[Row(r=None)]
Python
df.select(sf.try_variant_get(sf.parse_json(df.json), df.path, "int").alias("r")).collect()
Output
[Row(r=1)]