You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark调用from_json传入schema报ArrayType无法识别解析错误

PySpark动态schema场景下from_json解析报错问题

问题背景

本问题为PySpark空数组处理相关问题的跟进咨询,首先感谢@abiratis此前的解答。我们在AWS Glue作业中落地对应方案时,与原方案存在场景差异:当前场景无预定义静态schema,因此新增colSchema列存储some-array字段每一项的schema信息,样例数据如下:

+------------------------+-----------------------------------------------------------------------------------------------------------------------+
|some-array              |colSchema                                                                                                              |
+------------------------+-----------------------------------------------------------------------------------------------------------------------+
|[{f1a, f2a}, {f1b, f2b}]|ArrayType(StructType(List(StructField(array-field-1,StringType,true),StructField(array-field-2,StringType,true))),true)|
+------------------------+-----------------------------------------------------------------------------------------------------------------------+

复现代码

我们使用from_json函数做格式转换,核心代码如下:

final_df.select(from_json(col('some-array'), 'ArrayType(StructType(List(StructField(array-field-1,StringType,true),
StructField(array-field-2,StringType,true))),true)' {'allowUnquotedFieldNames':True}).alias('json1')).show(3, False)

报错信息

代码执行时抛出如下异常:

AnalysisException: Cannot parse the schema in JSON format: Unrecognized token 'ArrayType': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: (String)"ArrayType(StructType(List(StructField(array-field-1,StringType,true),StructField(array-field-2,StringType,true))),true)"; line: 1, column: 10]
Failed fallback parsing: Cannot parse the data type: 
mismatched input 'StructType' expecting INTEGER_VALUE(line 1, pos 10)

== SQL ==
ArrayType(StructType(List(StructField(array-field-1,StringType,true),StructField(array-field-2,StringType,true))),true)
----------^^^

求助

恳请各位提供该问题的可行解决思路,非常感谢。


内容的提问来源于stack exchange,提问作者user1119283

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 01:01:25