我有如下所述的Json文件,该文件具有用于单个Json元素的数组和结构,因此在使用pyspark dataframe读取此json文件后,将数据类型作为“ 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"))
当我们运行上面的代码时,返回“字符串”,但实际上数据帧同时具有数组和结构。你们能帮我解决这个问题吗?
{
"nodesList":{
"node":[
{
"Id":23,
"commentsList":{
"comments":{
"commentsType":"abc",
"commentsText":"Hi"
}
},
{
"Id":24,
"commentsList":{
"comments":[
{
"commentsType":"def",
"commentsText":"hello"
},
{
"commentsType":"ghi",
"commentsText":"good"
}
]
}
}
}
]
}
}