Bagikan melalui


variant_get

Mengekstrak sub-varian dari v menurut path, lalu melemparkan sub-varian ke targetType. Mengembalikan null jika jalur tidak ada. Melemparkan pengecualian jika pemeran gagal.

Syntax

from pyspark.sql import functions as sf

sf.variant_get(v, path, targetType)

Parameter-parameternya

Pengaturan Tipe Description
v pyspark.sql.Column atau str Nama kolom atau kolom varian.
path pyspark.sql.Column atau str Kolom yang berisi string jalur ekstraksi atau string yang mewakili jalur ekstraksi. Jalur yang valid harus dimulai dengan $ dan diikuti oleh nol atau lebih segmen seperti [123], .name, ['name'], atau ["name"].
targetType str Jenis data target yang akan ditransmisikan, dalam string berformat DDL.

Pengembalian Barang

pyspark.sql.Column: kolom yang targetType mewakili hasil yang diekstrak

Examples

from pyspark.sql import functions as sf
df = spark.createDataFrame([ {'json': '''{ "a" : 1 }''', 'path': '$.a'} ])
v = sf.parse_json(df.json)
df.select(sf.variant_get(v, "$.a", "int").alias("r")).collect()
[Row(r=1)]
df.select(sf.variant_get(v, "$.b", "int").alias("r")).collect()
[Row(r=None)]
df.select(sf.variant_get(sf.parse_json(df.json), df.path, "int").alias("r")).collect()
[Row(r=1)]