我正在使用
Java的Flink Table API,我想将DataSet转换为DataStream ….以下是我的代码:
TableEnvironment tableEnvironment=new TableEnvironment();
Table tab1=table.where("related_value < 2014").select("related_value,ref_id");
DataSet<MyClass>ds2=tableEnvironment.toDataSet(tab1, MyClass.class);
DataStream<MyClass> d=tableEnvironment.toDataStream(tab1, MyClass.class);
但是当我尝试执行此程序时,它会抛出以下异常:
org.apache.flink.api.table.ExpressionException:JavaStreamingTranslator的无效根:Root(ArraySeq((related_value,Double),(ref_id,String))).您是否尝试将基于DataSet的表转换为DataStream,反之亦然?我想知道如何使用Flink Table API将DataSet转换为DataStream?
另一件事我想知道,对于模式匹配,有Flink CEP库可用.但是使用Flink Table API进行模式匹配是否可行?
最佳答案 Flink的Table API不是为将DataSet转换为DataStream而设计的,反之亦然.使用Table API无法做到这一点,目前还没有其他方法可以使用Flink.
统一DataStream和DataSet API(将批处理作为流的特殊情况处理,即作为有界流)是Flink的长期路线图.