Вы можете сделать это следующим образом
df = spark.createDataFrame([('accounts','name','displayname','objectname','objectId','objectDefinition'),('accounts','name','displayname','objectname','objectId','objectDefinition')], ['accounts','name','displayname','objectname','objectId','objectDefinition'])
df2 = df.withColumn('objectJson',f.struct(
f.col('displayname'),
f.col('objectname'),
f.col('objectId'),
f.col('objectDefinition')
)).select('accounts','name','objectJson')
df2.toJSON().take(100)
[{"accounts":"accounts",
"name":"name",
"objectJson":{
"displayname":"displayname",
"objectname":"objectname",
"objectId":"objectId",
objectDefinition":"objectDefinition"
}}]
df2.repartition(1).write.json('path/to/save/data')
Надеюсь, это поможет