flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? |
我知道了
在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? |
还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写?
在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: 我知道了 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? |
flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。
在 2020/8/25 14:59, 酷酷的浑蛋 写道: > 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? > > > > > 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: > 我知道了 > > > > > 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: > > > > > flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? |
关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗
在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 在 2020/8/25 14:59, 酷酷的浑蛋 写道: 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: 我知道了 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? |
这个需要你自定义UDF
酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午3:46写道: > 关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗 > > > > > 在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: > flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 > > 在 2020/8/25 14:59, 酷酷的浑蛋 写道: > 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? > > > > > 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: > 我知道了 > > > > > 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: > > > > > flink1.11 > 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? > |
In reply to this post by 酷酷的浑蛋
直接CAST不可以吗?
酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午3:46写道: > 关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗 > > > > > 在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: > flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 > > 在 2020/8/25 14:59, 酷酷的浑蛋 写道: > 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? > > > > > 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: > 我知道了 > > > > > 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: > > > > > flink1.11 > 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? > |
CREATE TABLE test (
a VARCHAR, b INT ) WITH ( 'connector'='kafka', 'topic'='test', 'properties.bootstrap.servers'='xxx', 'properties.group.id'='groupid', 'scan.startup.mode'='group-offsets', 'format'='json' ); 我说的是在source阶段,读过来的数据,如果某个key的值是嵌套json或者json数组,那么,format=json是获取不到这个字段值的,直接显示为空 在2020年08月25日 16:23,zilong xiao<[hidden email]> 写道: 直接CAST不可以吗? 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午3:46写道: 关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗 在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 在 2020/8/25 14:59, 酷酷的浑蛋 写道: 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: 我知道了 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? |
In reply to this post by Jim Chen
还没到udf那一步,直接用create table的方式,过来的数据就是获取不到值的, CREATE TABLE test ( a VARCHAR, b INT ) WITH ( 'connector' = 'kafka', 'topic' = 'test', 'properties.bootstrap.servers' = 'xxx', 'properties.group.id' = 'groupid', 'scan.startup.mode' = 'group-offsets', 'format'='json' ); 在2020年08月25日 16:14,Jim Chen<[hidden email]> 写道: 这个需要你自定义UDF 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午3:46写道: 关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗 在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 在 2020/8/25 14:59, 酷酷的浑蛋 写道: 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: 我知道了 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? |
Hi,
这个功能已经在1.12支持了[1],如果着急使用,可以cherry-pick回去试试看。 用法就是直接把这个字段声明为varchar,json format会帮你自动处理 [1] https://issues.apache.org/jira/browse/FLINK-18002 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午6:32写道: > > > 还没到udf那一步,直接用create table的方式,过来的数据就是获取不到值的, > CREATE TABLE test ( > a VARCHAR, > b INT > ) WITH ( > 'connector' = 'kafka', > 'topic' = 'test', > 'properties.bootstrap.servers' = 'xxx', > 'properties.group.id' = 'groupid', > 'scan.startup.mode' = 'group-offsets', > 'format'='json' > ); > > > > > 在2020年08月25日 16:14,Jim Chen<[hidden email]> 写道: > 这个需要你自定义UDF > > 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午3:46写道: > > 关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗 > > > > > 在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: > flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 > > 在 2020/8/25 14:59, 酷酷的浑蛋 写道: > 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? > > > > > 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: > 我知道了 > > > > > 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: > > > > > flink1.11 > > 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? > > -- Best, Benchao Li |
这个功能非常好的,因为第三方数据总是搞事情,动不动就加字段,改名字的。
------------------ 原始邮件 ------------------ 发件人: Benchao Li <[hidden email]> 发送时间: 2020年8月25日 18:40 收件人: user-zh <[hidden email]> 主题: 回复:flink1.11 sql问题 Hi, 这个功能已经在1.12支持了[1],如果着急使用,可以cherry-pick回去试试看。 用法就是直接把这个字段声明为varchar,json format会帮你自动处理 [1] https://issues.apache.org/jira/browse/FLINK-18002 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午6:32写道: > > > 还没到udf那一步,直接用create table的方式,过来的数据就是获取不到值的, > CREATE TABLE test ( > a VARCHAR, > b INT > ) WITH ( > 'connector' = 'kafka', > 'topic' = 'test', > 'properties.bootstrap.servers' = 'xxx', > 'properties.group.id' = 'groupid', > 'scan.startup.mode' = 'group-offsets', > 'format'='json' > ); > > > > > 在2020年08月25日 16:14,Jim Chen<[hidden email]> 写道: > 这个需要你自定义UDF > > 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午3:46写道: > > 关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗 > > > > > 在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: > flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 > > 在 2020/8/25 14:59, 酷酷的浑蛋 写道: > 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? > > > > > 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: > 我知道了 > > > > > 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: > > > > > flink1.11 > > 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? > > -- Best, Benchao Li |
In reply to this post by Benchao Li-2
好吧,谢谢
在2020年08月25日 18:40,Benchao Li<[hidden email]> 写道: Hi, 这个功能已经在1.12支持了[1],如果着急使用,可以cherry-pick回去试试看。 用法就是直接把这个字段声明为varchar,json format会帮你自动处理 [1] https://issues.apache.org/jira/browse/FLINK-18002 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午6:32写道: 还没到udf那一步,直接用create table的方式,过来的数据就是获取不到值的, CREATE TABLE test ( a VARCHAR, b INT ) WITH ( 'connector' = 'kafka', 'topic' = 'test', 'properties.bootstrap.servers' = 'xxx', 'properties.group.id' = 'groupid', 'scan.startup.mode' = 'group-offsets', 'format'='json' ); 在2020年08月25日 16:14,Jim Chen<[hidden email]> 写道: 这个需要你自定义UDF 酷酷的浑蛋 <[hidden email]> 于2020年8月25日周二 下午3:46写道: 关键是那个值不是固定的,有时候是json,有时候是json数组,没办法固定写一个,现在我只想把value当做字符串获取到,难道没有办法吗 在2020年08月25日 15:34,taochanglian<[hidden email]> 写道: flinksql,处理json ,对象的话用row,数组的话用array获取具体的值。 在 2020/8/25 14:59, 酷酷的浑蛋 写道: 还是这个问题,如果字段的值有时候是json有时候是json数组,那么我只想把它当做字符串显示,该怎么写? 在2020年08月25日 14:05,酷酷的浑蛋<[hidden email]> 写道: 我知道了 在2020年08月25日 13:58,酷酷的浑蛋<[hidden email]> 写道: flink1.11 读取json数据时format=“json”,当数据中某个字段的值是[{"a1":{"a2":"v2"}}]类似这种嵌套,flink取到的值就是空,这个怎么处理? -- Best, Benchao Li |
Free forum by Nabble | Edit this page |