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.
Konvertiert eine Spalte, die eine StructType, ArrayTypeoder MapType eine VariantType in eine JSON-Zeichenfolge enthält. Löst eine Ausnahme im Fall eines nicht unterstützten Typs aus.
Syntax
from pyspark.sql import functions as sf
sf.to_json(col, options=None)
Die Parameter
| Parameter | Typ | Description |
|---|---|---|
col |
pyspark.sql.Column oder str |
Der Name der Spalte, die eine Struktur, ein Array, eine Zuordnung oder ein Variant-Objekt enthält. |
options |
Diktat, optional | Optionen zum Steuern der Konvertierung. Akzeptiert die gleichen Optionen wie die JSON-Datenquelle. Darüber hinaus unterstützt die Funktion die pretty Option, die eine ziemliche JSON-Generierung ermöglicht. |
Rückkehr
pyspark.sql.Column: JSON-Objekt als Zeichenfolgenspalte.
Examples
Beispiel 1: Konvertieren einer Strukturtypspalte in JSON
import pyspark.sql.functions as sf
from pyspark.sql import Row
data = [(1, Row(age=2, name='Alice'))]
df = spark.createDataFrame(data, ("key", "value"))
df.select(sf.to_json(df.value).alias("json")).show(truncate=False)
+------------------------+
|json |
+------------------------+
|{"age":2,"name":"Alice"}|
+------------------------+
Beispiel 2: Konvertieren einer ArrayType-Spalte in JSON
import pyspark.sql.functions as sf
from pyspark.sql import Row
data = [(1, [Row(age=2, name='Alice'), Row(age=3, name='Bob')])]
df = spark.createDataFrame(data, ("key", "value"))
df.select(sf.to_json(df.value).alias("json")).show(truncate=False)
+-------------------------------------------------+
|json |
+-------------------------------------------------+
|[{"age":2,"name":"Alice"},{"age":3,"name":"Bob"}]|
+-------------------------------------------------+
Beispiel 3: Konvertieren einer MapType-Spalte in JSON
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1, {"name": "Alice"})], ("key", "value"))
df.select(sf.to_json(df.value).alias("json")).show(truncate=False)
+----------------+
|json |
+----------------+
|{"name":"Alice"}|
+----------------+
Beispiel 4: Konvertieren einer VariantType-Spalte in JSON
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1, '{"name": "Alice"}')], ("key", "value"))
df.select(sf.to_json(sf.parse_json(df.value)).alias("json")).show(truncate=False)
+----------------+
|json |
+----------------+
|{"name":"Alice"}|
+----------------+
Beispiel 5: Konvertieren einer geschachtelten MapType-Spalte in JSON
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1, [{"name": "Alice"}, {"name": "Bob"}])], ("key", "value"))
df.select(sf.to_json(df.value).alias("json")).show(truncate=False)
+---------------------------------+
|json |
+---------------------------------+
|[{"name":"Alice"},{"name":"Bob"}]|
+---------------------------------+
Beispiel 6: Konvertieren einer einfachen ArrayType-Spalte in JSON
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1, ["Alice", "Bob"])], ("key", "value"))
df.select(sf.to_json(df.value).alias("json")).show(truncate=False)
+---------------+
|json |
+---------------+
|["Alice","Bob"]|
+---------------+
Beispiel 7: Konvertieren in JSON mit angegebenen Optionen
import pyspark.sql.functions as sf
df = spark.sql("SELECT (DATE('2022-02-22'), 1) AS date")
json1 = sf.to_json(df.date)
json2 = sf.to_json(df.date, {"dateFormat": "yyyy/MM/dd"})
df.select("date", json1, json2).show(truncate=False)
+---------------+------------------------------+------------------------------+
|date |to_json(date) |to_json(date) |
+---------------+------------------------------+------------------------------+
|{2022-02-22, 1}|{"col1":"2022-02-22","col2":1}|{"col1":"2022/02/22","col2":1}|
+---------------+------------------------------+------------------------------+