Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengonversi kolom yang berisi StructType, ArrayType, MapType atau menjadi VariantType string JSON. Melempar pengecualian, dalam kasus jenis yang tidak didukung.
Syntax
from pyspark.sql import functions as sf
sf.to_json(col, options=None)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
col |
pyspark.sql.Column atau str |
Nama kolom yang berisi struktur, array, peta, atau objek varian. |
options |
dict, opsional | Opsi untuk mengontrol konversi. Menerima opsi yang sama dengan sumber data JSON. Selain itu, fungsi ini mendukung pretty opsi yang memungkinkan pembuatan JSON yang cantik. |
Pengembalian Barang
pyspark.sql.Column: Objek JSON sebagai kolom string.
Examples
Contoh 1: Mengonversi kolom StructType ke 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"}|
+------------------------+
Contoh 2: Mengonversi kolom ArrayType ke 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"}]|
+-------------------------------------------------+
Contoh 3: Mengonversi kolom MapType ke 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"}|
+----------------+
Contoh 4: Mengonversi kolom VariantType ke 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"}|
+----------------+
Contoh 5: Mengonversi kolom MapType berlapis ke 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"}]|
+---------------------------------+
Contoh 6: Mengonversi kolom ArrayType sederhana ke 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"]|
+---------------+
Contoh 7: Mengonversi ke JSON dengan opsi yang ditentukan
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}|
+---------------+------------------------------+------------------------------+