Я пытаюсь извлечь некоторые поля из строки JSONn в фрейм данных. Я могу добиться этого, поместив каждое поле в фрейм данных, а затем объединив все фреймы данных, как показано ниже. Но есть ли более простой способ сделать это? Потому что это всего лишь упрощенный пример, и мне нужно извлечь гораздо больше полей из моего проекта.
from pyspark.sql import Row
s = '{"job_id":"123","settings":{"task":[{"taskname":"task1"},{"taskname":"task2"}]}}'
json_object = json.loads(s)
# json_object
job_id_l = [Row(job_id=json_object['job_id'])]
job_id_df = spark.createDataFrame(job_id_l)
# display(job_id_df)
tasknames = []
for t in json_object['settings']["task"]:
tasknames.append(Row(taskname=t["taskname"]))
tasknames_df = spark.createDataFrame(tasknames)
# display(tasknames_df)
job_id_df.crossJoin(tasknames_df).display()
Результат:
job_id taskname
123 task1
123 task2
Подробнее здесь: https://stackoverflow.com/questions/787 ... -dataframe