Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Parseert een kolom met een JSON-tekenreeks in een MapType met StringType als sleutelstype StructType of ArrayType met het opgegeven schema. Retourneert null, in het geval van een onparsbare tekenreeks.
Syntaxis
from pyspark.sql import functions as sf
sf.from_json(col, schema, options=None)
Parameterwaarden
| Kenmerk | Typologie | Description |
|---|---|---|
col |
pyspark.sql.Column of str |
Een kolom- of kolomnaam in JSON-indeling. |
schema |
DataType of str |
Een StructType, ArrayType of StructType of Python-tekenreeks letterlijk met een DDL-opgemaakte tekenreeks die moet worden gebruikt bij het parseren van de json-kolom. |
options |
dicteren, optioneel | Opties voor het beheren van parseren. Accepteert dezelfde opties als de json-gegevensbron. |
Retouren
pyspark.sql.Column: een nieuwe kolom van complex type van het opgegeven JSON-object.
Voorbeelden
Voorbeeld 1: JSON parseren met een opgegeven schema
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}|
+----+
Voorbeeld 2: JSON parseren met een tekenreeks met DDL-indeling
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}|
+----+
Voorbeeld 3: JSON parseren in een MapType
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}|
+--------+
Voorbeeld 4: JSON parseren in een matrixtype van StructType
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}]|
+-----+
Voorbeeld 5: JSON parseren in een matrixtype
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]|
+---------+
Voorbeeld 6: JSON parseren met opgegeven opties
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}|
+---------+----------------+----------------+