У меня есть файл Json, как упомянуто ниже, в котором есть массив и структура для одного элемента Json, поэтому после чтения этого файла json с использованием фрейма данных pyspark получите тип данных «String» вместо Array / Struct.Не могли бы вы помочь мне решить эту проблему?Я преобразовал вышеупомянутый json в dataframe (df) и затем пытаюсь прочитать его тип с помощью приведенного ниже кода
commentdtype = df.select("nodesList.node.commentsList.comments").dtypes[0][1]
print(commentdtype) # --> this is returning string instead of array/struct
if str(commentdtype).startswith('array<'):
commentdf = df.select(explode("nodesList.node.commentsList.comments").alias("comments"))
else:
commentdf = df.select(F.col("nodesList.node.commentsList.comments").alias("comments"))
Когда мы запускаем приведенный выше код, возвращается «строка», но на самом деле фрейм данных имеет как массив, так и структуру,Не могли бы вы, ребята, помочь мне решить эту проблему.
Ввод Json
{
"nodesList":{
"node":[
{
"Id":23,
"commentsList":{
"comments":{
"commentsType":"abc",
"commentsText":"Hi"
}
},
{
"Id":24,
"commentsList":{
"comments":[
{
"commentsType":"def",
"commentsText":"hello"
},
{
"commentsType":"ghi",
"commentsText":"good"
}
]
}
}
}
]
}
}