Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Analysiert eine Spalte, die eine JSON-Zeichenfolge enthält, StructType als StringTypeMapType Schlüsseltyp oder ArrayType mit dem angegebenen Schema. Gibt nullim Fall einer nicht analysierten Zeichenfolge zurück.
Syntax
from pyspark.sql import functions as sf
sf.from_json(col, schema, options=None)
Die Parameter
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column oder str |
Ein Spalten- oder Spaltenname im JSON-Format. |
schema |
DataType oder str |
A StructType, ArrayType of StructType or Python string literal with a DDL-formatted string to use when parsing the json column. |
options |
Diktat, optional | Optionen zum Steuern der Analyse. Akzeptiert die gleichen Optionen wie die JSON-Datenquelle. |
Rückkehr
pyspark.sql.Column: eine neue Spalte mit komplexem Typ aus einem bestimmten JSON-Objekt.
Examples
Beispiel 1: Analysieren von JSON mit einem angegebenen 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}|
+----+
Beispiel 2: Analysieren von JSON mit einer DDL-formatierten Zeichenfolge
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}|
+----+
Beispiel 3: Analysieren von JSON in einen 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}|
+--------+
Beispiel 4: Analysieren von JSON in einen ArrayType von 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}]|
+-----+
Beispiel 5: Analysieren von JSON in einen ArrayType
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]|
+---------+
Beispiel 6: Analysieren von JSON mit angegebenen Optionen
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}|
+---------+----------------+----------------+