2015-07-10 117 views
2

我想連接兩個表使用flink scala table api。我有一個包含兩個(a,b)列的表格,另一個表格包含一個(c)列,我想將這兩個表格連接到一個有三個(a,b,c)列的更大的表格。我只是想加入他們,我不想用任何條件(Where子句)加入他們。但Flink拋出一個錯誤,以使用Where子句,是否在where子句中沒有任何條件的情況下加入表的方式?如果我想使用where子句,我應該給予什麼條件?表API斯卡拉

下面是我爲連接兩個表

val table_join = table1.join(table2).select("a,b,c").toDataset[res] 

在正確的方向任何幫助表示高度讚賞命令。謝謝。

回答

3

Apache Flink的Table API連接是一個內部設備連接,並且至少需要一個相等謂詞。

沒有謂詞的連接是交叉產品。 Flink的Table API不提供跨產品運營商,因爲跨產品非常難計算。

使用Flink的DataSet API,可以使用交叉操作符或具有廣播集的映射函數來計算交叉產品。

+0

但是,作爲解決方法,您可以做的是爲每行分配一個附加列,其中包含相同的值。如果你加入這個專欄,那麼你基本上模擬了一個交叉操作。 –