to_json

, StructTypeArrayType veya MapType içeren bir VariantTypesütunu JSON dizesine dönüştürür. Desteklenmeyen bir tür söz konusu olduğunda bir özel durum oluşturur.

Sözdizimi

from pyspark.sql import functions as sf

sf.to_json(col, options=None)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya str Yapı, dizi, harita veya değişken nesnesi içeren sütunun adı.
options dict, isteğe bağlı Dönüştürmeyi denetleme seçenekleri. JSON veri kaynağıyla aynı seçenekleri kabul eder. Ayrıca işlev, güzel JSON oluşturmayı sağlayan seçeneği destekler pretty .

İade

pyspark.sql.Column: Dize sütunu olarak JSON nesnesi.

Örnekler

Örnek 1: StructType sütununu JSON'a dönüştürme

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"}|
+------------------------+

Örnek 2: ArrayType sütununu JSON'a dönüştürme

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"}]|
+-------------------------------------------------+

Örnek 3: MapType sütununu JSON'a dönüştürme

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"}|
+----------------+

Örnek 4: VariantType sütununu JSON'a dönüştürme

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"}|
+----------------+

Örnek 5: İç içe maptype sütununu JSON'a dönüştürme

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"}]|
+---------------------------------+

Örnek 6: Basit bir ArrayType sütununu JSON'a dönüştürme

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"]|
+---------------+

Örnek 7: Belirtilen seçeneklerle JSON'a dönüştürme

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}|
+---------------+------------------------------+------------------------------+