我有一个spark数据框架,其中一列有多个字典:
<表类>
id
结果
tbody><<tr>1 {"key1":"一","key2":"b"},{"key1":"d","key2":"e"},{"key1":"m","key2":"n"} 2{"key1":"r","key2":"年代"},{"key1":"t","key2":' u '} 表类>
首先使用from_json
函数将result
列转换为结构结构数组,然后使用inline
函数将其展开
json_schema = """
array<struct<key1:string,key2:string>>
"""
df = df.withColumn('result', F.from_json(F.concat(F.lit('['), 'result', F.lit(']')), json_schema))
.selectExpr('id', 'inline(result)')
df.show(truncate=False)