2016-05-13 64 views
4

我使用Java,我想數據集轉換的數據流中使用弗林克表API ....以下是我的代碼:弗林克表API無法數據集轉換的數據流中

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進行模式匹配是可行的嗎?

+0

請不要在一個Stackoverflow問題中提出多個問題。改爲爲模式匹配問題打開另一個線程。 –

回答

2

Flink's Table API並未設計爲將DataSet轉換爲DataStream,反之亦然。使用Table API無法做到這一點,目前也沒有其他方法可以與Flink一起完成。

統一DataStreamDataSet API(處理批處理作爲流的特殊情況,即作爲有界流)是Flink的長期路線圖。

+0

好的.....只是想知道Flink的Table API是否可以用於Pattern匹配或CEP? – Akki

+0

請爲此打開一個新問題。 Stackoverflow不是討論的地方,它是一個問答服務。如果在同一主題下回答多個問題,其他人將無法找到答案。 –