2017-06-12 46 views
-1

我有2個的TableRow PCollection -谷歌數據流 - 創建多個PCollection一個PCollection <TableRow>< TableRow >

  1. PCollection validRow:此的TableRow包含(KEY1,valiue1)
  2. PCollection inValidRow:此的TableRow包含(密鑰,valiue2 )

從上述PCollection,我想創建含有鍵值對一個PCollection的TableRow((KEY1,valiue1),(KEY2,值2))

+0

您是否希望將兩者連接起來PCollections,或將它們連接在一起? –

+0

我想連接兩個PCollection 。由於這兩個PCollection都包含不同的密鑰。我想創建一個具有key1,key2鍵的PCollection 並且想要保存在bigquery表中。 – Baji

+0

我的問題是如果你想在BQ表中寫這些pcollection,那麼你可以分別寫這些pcollection到bigquery中。爲什麼你想在一個收藏集中加入這些? –

回答

0

你可以看看我對here中類似問題的回答。 您將要創建一個PCollectionList,然後壓平:

PCollection<TableRow> validRow = ... 
PCollection<TableRow> inValidRow = ... 

PCollectionList<TableRow> rowList = PCollectionList.of(validRow).and(inValidRow); 

PCollection<TableRow> rows = rowList.apply(Flatten.pCollections()); 
+0

您好Matthias, 我想從輸入2不同的PCollection 只創建一個PCollection 行。一旦我得到一個TableRow [(key1,value1),(key2,value2)],我將該行保存到BQ表中作爲具有fileds(key1,key2)的一行 – Baji

+0

這正是上述代碼所做的。你有2個PCollection的TableRows(validRow和inValidRow),並將它組合成一個可以寫入BigQuery的TableRows的PCollection。儘管如此,你仍然對我的加入和連接感到困惑,因爲上面的解釋聽起來像你想加入,而以前你說過要連接。 –

+0

Baji,你想在整個集合中使用單個元素嗎?如果不是,你如何決定哪些行應該組合? –

相關問題