Я пытаюсь проанализировать файл JSON, который имеет ArrayType и ObjecType для одного и того же тега (в зависимости от количества дочерних записей)
{
main:
{
"a":1,
"b":[{ "name"="Joe", # note that it [{}]**
"Age"="21"},
{"name"="John",
"Age"="21"} ]
},
{
"a":2,
"b":{ "name"="Mary", # note that it {}**
"Age"="21"}
}
}
Я пытался применить схему Struct для тега "b", но это только подбирает второй элемент, а не первый.Конечная цель - преобразовать его в фрейм данных
schema = StructType([
StructField("name", StringType(), True)
,StructField("age", StringType(), True)
])
jsonsf=df.select(col('main.a'),explode(col('main.b')).alias("exp_col")
jsonsf=df.select(col('main.a'),from_json(col('exp_col'),schema))
a|name|Age
1|Joe|21
1|John|21
2|MAry|21