刚刚进一步发现一个方法可以做动态扩展的类型。代码如下:
这种情况下,首先表有一个字段d,然后d是json无限嵌套的类型都可以。
此处有第一个疑问:如何不要d这个字段,让顶层就是一个无限扩展的map结构呢?
stEnv.connect(
new Kafka()
.properties(TestKafkaUtils.getKafkaProperties())
.version("universal")
.topic("test")
.startFromLatest()
).withFormat(new Json()
.failOnMissingField(false)
).withSchema(
new Schema()
.field("d", TypeInformation.of(Map.class))
).inAppendMode().createTemporaryTable("t");
其次,这种效果我打印了下table的schema如下,其中d的类型是LEGACY('RAW',
'ANY<java.util.Map>'),貌似是某种兼容类型。此处第二个疑问,通过SQL方式如何创建这种结构呢?
root
|-- d: LEGACY('RAW', 'ANY<java.util.Map>')
在 2020/8/11 下午4:23,“zhao liang”<[email protected]> 写入:
Hi,你图挂了,换个图床试试呢
发件人: Zhao,Yi(SEC) <[email protected]>
日期: 星期二, 2020年8月11日 16:04
收件人: [email protected] <[email protected]>
主题: 关于FLinkSQL如何创建类json无限扩展的表结构问题
刚刚进一步发现一个方法可以做动态扩展的类型。代码如下:
[cid:[email protected]]
这种情况下,首先表有一个字段d,然后d是json无限嵌套的类型都可以。
此处有第一个疑问:如何不要d这个字段,让顶层就是一个无限扩展的map结构呢?
其次,这种效果我打印了下table的schema如下,其中d的类型是LEGACY('RAW',
'ANY<java.util.Map>'),貌似是某种兼容类型。此处第二个疑问,通过SQL方式如何创建这种结构呢?
root
|-- d: LEGACY('RAW', 'ANY<java.util.Map>')