开发者社区> 问答> 正文

嵌套 json 中string 数组的解析异常

我使用 flink 1.9 处理嵌套 json, 它嵌套了一个string数组,构造出的 table schema结构为:

Row(parsedResponse: BasicArrayTypeInfo , timestamp: Long)

执行作业后会发生报错如下,出现 object 类型和string 类型的转换错误

Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast

to [Ljava.lang.String;

at

org.apache.flink.api.common.typeutils.base.array.StringArraySerializer.copy(StringArraySerializer.java:35)

at

org.apache.flink.api.java.typeutils.runtime.RowSerializer.copy(RowSerializer.java:93)

at

org.apache.flink.api.java.typeutils.runtime.RowSerializer.copy(RowSerializer.java:44)

大佬们知道该怎么修改么?

我的json 的结构如下:

{"parsedResponse":["apple", "banana", "orange"], "timestamp": "1522253345"}

P.S:

如果把 string 数组改为 long 数组或者 double 数组执行对应的操作可以正确运行,目前来看只有 string 数组出现问题。*来自志愿者整理的flink邮件归档

展开
收起
小阿矿 2021-12-07 15:21:31 2110 0
1 条回答
写回答
取消 提交回答
  • 看了下代码,这确实是Flink 1.9里面的一个bug[1], 原因没有 source 没有正确处理legacy type 和新的 type,这个issue没有在1.9的分支上修复,可以升级到1.10.1试下。*来自志愿者整理的flink邮件归档

    2021-12-07 16:30:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像