Ключ оказался в исходном коде искры . path
при передаче в spark.read.json
может быть «СДР строк, хранящих объекты json».
Вот источник схема данных :
Код, который я придумал, был:
def inject_id(row):
js = json.loads(row['fields'])
js['id'] = row['id']
return json.dumps(js)
json_df = spark.read.json(df.rdd.map(inject_id))
json_df
затем имелась схема как таковая
Обратите внимание, что - я не тестировал это с более вложенной структурой, но я верю, что она будет поддерживать все, что поддерживает spark.read.json
.