создание структуры json из фрейма данных с использованием pyspark - PullRequest
0 голосов
/ 22 мая 2019

У меня есть датафрейм, который является продуктом левого соединения. Теперь я хочу создать структуру JSON.

Я пытался использовать другую опцию, но не смог ее создать. Вот мой фрейм данных:

Col1    col2    col3    col4
1111    name    null    null
1112    name1   abcd    def
1112    name1   DEFG    ABXC

Желаемая структура JSON:

{col1 : 1111, col2 : name , detial: {col3:,col4:}}
{col1 : 1112, col2 : name1 , detial: {{col3:abcd,col4:def},{col3:DEFG,col4:ABXC}}}

1 Ответ

1 голос
/ 22 мая 2019

Я создал данные из вашего образца набора данных и создал из них фрейм данных. Вы можете использовать следующий код:

from pyspark.sql import Row, DataFrame,SparkSession
from pyspark.sql.functions import *
import json
spark = SparkSession.builder.getOrCreate()

data = spark.createDataFrame([Row(col1=1111,col2="name",col3=None,col4=None),Row(col1=1112,col2="name1",col3="abcd",col4="def"),Row(col1=1112,col2="name1",col3="DEFG",col4="ABXC")])

ndata = data.select(struct("col1","col2",struct("col3","col4").alias("details")).alias("data"))

dataList = list(map(json.loads,ndata.toJSON().collect()))

Приведенный выше код возвращает результат в виде списка словарей в Python.

...