Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Flink-将Avro数据流转换为表_Java_Apache Flink_Flink Streaming_Flink Sql - Fatal编程技术网

Java Flink-将Avro数据流转换为表

Java Flink-将Avro数据流转换为表,java,apache-flink,flink-streaming,flink-sql,Java,Apache Flink,Flink Streaming,Flink Sql,我有卡夫卡的Avro格式的信息。这些必须转换为表,并使用SQL进行选择,然后转换为流,最后接收。 有多个具有不同Avro模式的卡夫卡主题,因此需要动态表 这是我正在使用的代码 StreamExecutionEnvironment env = ...; StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env); FlinkKafkaConsumer<MyAvroClass> kafkaConsumer =

我有卡夫卡的Avro格式的信息。这些必须转换为表,并使用SQL进行选择,然后转换为流,最后接收。 有多个具有不同Avro模式的卡夫卡主题,因此需要动态表

这是我正在使用的代码

StreamExecutionEnvironment env = ...;
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);

FlinkKafkaConsumer<MyAvroClass> kafkaConsumer = ...;
var kafkaInputStream = env.addSource(kafkaConsumer, "kafkaInput");

Table table = tableEnv.fromDataStream(kafkaInputStream);
tableEnv.executeSql("DESCRIBE " + table).print();
...
我无法访问
字段的元素。当我打印表说明时,我看到项目是任意类型的

+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|       name |                                                        type | null | key | extras | watermark |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|   event_id |                                                      STRING | true |     |        |           |
|      items |                        LEGACY('RAW', 'ANY<java.util.List>') | true |     |        |           |
|       user |  LEGACY('STRUCTURED_TYPE', 'POJO<com.company.events.User>') | true |     |        |           |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+  
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|名称|类型|空|键|附加|水印|
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|事件| id |字符串|真| | ||
|项目|遗留(“原始”、“任何”)|真实| | ||
|用户|遗留('STRUCTURED_TYPE','POJO')|真| | ||
+------------+-------------------------------------------------------------+------+-----+--------+-----------+  
如何将其转换为可用于查询项目的类型? 提前谢谢

+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|       name |                                                        type | null | key | extras | watermark |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+
|   event_id |                                                      STRING | true |     |        |           |
|      items |                        LEGACY('RAW', 'ANY<java.util.List>') | true |     |        |           |
|       user |  LEGACY('STRUCTURED_TYPE', 'POJO<com.company.events.User>') | true |     |        |           |
+------------+-------------------------------------------------------------+------+-----+--------+-----------+