В конце вам нужно иметь только 1 запись в вашем фрейме данных, чтобы получить ожидаемый результат.

аюсь создать вложенный JSON из моего фрейма данных искры, который имеет данные в следующей структуре. Приведенный ниже код создает простой JSON с ключом и значением. Не могли бы вы помочь

df.coalesce(1).write.format('json').save(data_output_file+"createjson.json", overwrite=True)

Обновление 1: согласно ответу @MaxU, я преобразовал фрейм данных spark в pandas и использовал group by. Это помещает последние два поля во вложенный массив. Как я мог сначала поместить категорию и считать во вложенный массив, а затем внутри этого массива я хочу поместить подкатегорию и счет.

Пример текстовых данных:

Vendor_Name,count,Categories,Category_Count,Subcategory,Subcategory_Count
Vendor1,10,Category 1,4,Sub Category 1,1
Vendor1,10,Category 1,4,Sub Category 2,2
Vendor1,10,Category 1,4,Sub Category 3,3
Vendor1,10,Category 1,4,Sub Category 4,4

j = (data_pd.groupby(['vendor_name','vendor_Cnt','Category','Category_cnt'], as_index=False)
             .apply(lambda x: x[['Subcategory','subcategory_cnt']].to_dict('r'))
             .reset_index()
             .rename(columns={0:'subcategories'})
             .to_json(orient='records'))

[{
        "vendor_name": "Vendor 1",
        "count": 10,
        "categories": [{
            "name": "Category 1",
            "count": 4,
            "subCategories": [{
                    "name": "Sub Category 1",
                    "count": 1
                },
                {
                    "name": "Sub Category 2",
                    "count": 1
                },
                {
                    "name": "Sub Category 3",
                    "count": 1
                },
                {
                    "name": "Sub Category 4",
                    "count": 1
                }
            ]
        }]

Ответы на вопрос(2)

Ваш ответ на вопрос