Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
JSON dizesini içeren bir sütunu anahtar türü MapType olarak veya StringType belirtilen şemayla bir StructTypeArrayType içine ayrıştırıyor.
nullAyrıştırılamayan bir dize durumunda döndürür.
Sözdizimi
from pyspark.sql import functions as sf
sf.from_json(col, schema, options=None)
Parametreler
| Parametre | Türü | Description |
|---|---|---|
col |
pyspark.sql.Column veya str |
JSON biçiminde bir sütun veya sütun adı. |
schema |
DataType veya str |
Json sütununu ayrıştırırken kullanılacak DDL biçimli bir dize ile StructType, StructType ArrayType veya Python dize değişmez değeri. |
options |
dict, isteğe bağlı | Ayrıştırma denetimi seçenekleri. Json veri kaynağıyla aynı seçenekleri kabul eder. |
İade
pyspark.sql.Column: verilen JSON nesnesinden karmaşık türde yeni bir sütun.
Örnekler
Örnek 1: JSON'yi belirtilen şemayla ayrıştırma
import pyspark.sql.functions as sf
from pyspark.sql.types import StructType, StructField, IntegerType
schema = StructType([StructField("a", IntegerType())])
df = spark.createDataFrame([(1, '''{"a": 1}''')], ("key", "value"))
df.select(sf.from_json(df.value, schema).alias("json")).show()
+----+
|json|
+----+
| {1}|
+----+
Örnek 2: DDL biçimli bir dize ile JSON ayrıştırma
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1, '''{"a": 1}''')], ("key", "value"))
df.select(sf.from_json(df.value, "a INT").alias("json")).show()
+----+
|json|
+----+
| {1}|
+----+
Örnek 3: JSON'yi MapType'a Ayrıştırma
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1, '''{"a": 1}''')], ("key", "value"))
df.select(sf.from_json(df.value, "MAP<STRING,INT>").alias("json")).show()
+--------+
| json|
+--------+
|{a -> 1}|
+--------+
Örnek 4: JSON'yi StructType ArrayType'a Ayrıştırma
import pyspark.sql.functions as sf
from pyspark.sql.types import ArrayType, StructType, StructField, IntegerType
schema = ArrayType(StructType([StructField("a", IntegerType())]))
df = spark.createDataFrame([(1, '''[{"a": 1}]''')], ("key", "value"))
df.select(sf.from_json(df.value, schema).alias("json")).show()
+-----+
| json|
+-----+
|[{1}]|
+-----+
Örnek 5: JSON'yi ArrayType'a Ayrıştırma
import pyspark.sql.functions as sf
from pyspark.sql.types import ArrayType, IntegerType
schema = ArrayType(IntegerType())
df = spark.createDataFrame([(1, '''[1, 2, 3]''')], ("key", "value"))
df.select(sf.from_json(df.value, schema).alias("json")).show()
+---------+
| json|
+---------+
|[1, 2, 3]|
+---------+
Örnek 6: JSON'yi belirtilen seçeneklerle ayrıştırma
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1, '''{a:123}'''), (2, '''{"a":456}''')], ("key", "value"))
parsed1 = sf.from_json(df.value, "a INT")
parsed2 = sf.from_json(df.value, "a INT", {"allowUnquotedFieldNames": "true"})
df.select("value", parsed1, parsed2).show()
+---------+----------------+----------------+
| value|from_json(value)|from_json(value)|
+---------+----------------+----------------+
| {a:123}| {NULL}| {123}|
|{"a":456}| {456}| {456}|
+---------+----------------+----------------+