Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Analizuje kolumnę zawierającą ciąg JSON w MapTypeStringType obiekcie z typem StructType kluczy lub ArrayType przy użyciu określonego schematu. Zwraca nullwartość , w przypadku nieparzystnego ciągu.
Składnia
from pyspark.sql import functions as sf
sf.from_json(col, schema, options=None)
Parametry
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column lub str |
Nazwa kolumny lub kolumny w formacie JSON. |
schema |
DataType lub str |
Literał ciągu StructType, ArrayType typu struktury lub języka Python z ciągiem sformatowanym w formacie DDL do użycia podczas analizowania kolumny JSON. |
options |
dict, opcjonalnie | Opcje kontrolowania analizowania. Akceptuje te same opcje co źródło danych JSON. |
Zwraca
pyspark.sql.Column: nowa kolumna typu złożonego z danego obiektu JSON.
Przykłady
Przykład 1. Analizowanie kodu JSON przy użyciu określonego schematu
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}|
+----+
Przykład 2. Analizowanie kodu JSON przy użyciu ciągu w formacie DDL
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}|
+----+
Przykład 3. Analizowanie kodu JSON do typu 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}|
+--------+
Przykład 4: analizowanie kodu JSON w typie tablicy typu struktury
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}]|
+-----+
Przykład 5. Analizowanie kodu JSON do typu 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]|
+---------+
Przykład 6. Analizowanie kodu JSON z określonymi opcjami
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}|
+---------+----------------+----------------+