try_variant_get

'den v öğesine göre pathbir alt değişken ayıklar ve sonra alt değişkenini öğesine yayınlar targetType. Yol yoksa veya atama başarısız olursa null döndürür.

Sözdizimi

from pyspark.sql import functions as sf

sf.try_variant_get(v, path, targetType)

Parametreler

Parametre Türü Description
v pyspark.sql.Column veya str Değişken sütun veya sütun adı.
path pyspark.sql.Column veya str Ayıklama yolu dizelerini içeren bir sütun veya ayıklama yolunu temsil eden bir dize. Geçerli bir yol $ ile başlamalıdır ve ardından [123], .name, ['name']veya ["name"]gibi sıfır veya daha fazla kesim vardır.
targetType str DDL biçimli bir dizede atanacak hedef veri türü.

İade

pyspark.sql.Column: Ayıklanan sonucu temsil eden bir sütun targetType

Örnekler

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()
[Row(r=1)]
df.select(sf.try_variant_get(v, "$.b", "int").alias("r")).collect()
[Row(r=None)]
df.select(sf.try_variant_get(v, "$.a", "binary").alias("r")).collect()
[Row(r=None)]
df.select(sf.try_variant_get(sf.parse_json(df.json), df.path, "int").alias("r")).collect()
[Row(r=1)]