Hi, 目前Json Format的实现就是假设json最外层是一个json object,暂时还无法做到顶层的所有字段无限扩展。
如果是在SQL里面,可以直接定义成map类型就可以,比如: ```SQL CREATE TABLE source ( d MAP<VARCHAR, VARCHAR> ) WITH (...) ``` Zhao,Yi(SEC) <[email protected]> 于2020年8月11日周二 下午4:58写道: > 刚刚进一步发现一个方法可以做动态扩展的类型。代码如下: > > 这种情况下,首先表有一个字段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>') > > > -- Best, Benchao Li
