我正在使用谷歌數據流CoGbkResult連接兩個表作爲內部連接。Google Dataflow內部連接加入列表[]
我能夠成功加入表格。 我正在寫輸出到一個文本文件,並能夠驗證連接。但是,連接會將匹配結果放入列表中。
就是這樣。
301%103%203%2017-09-20 07:49:46[2%google, 3%google, 1%microsoft]
301%105%200%2017-09-17 11:48:59[2%google, 3%google, 1%microsoft]
301%103%203%2017-09-20 07:49:46
來自table_1。 2%google
,3%google
,1%microsoft
與在table_2中加入的結果匹配。
以下是我processElement
方法:
public void processElement(ProcessContext c) {
KV<String, CoGbkResult> e = c.element();
String Ad_ID = e.getKey();
Iterable<String> Ad_Info = null;
Ad_Info = e.getValue().getAll(AdInfoTag);
for (String ImpressionInfo : c.element().getValue().getAll(ImpressionInfoTag)) {
// Generate a string that combines information from both collection values
c.output(KV.of(Ad_ID, "%" + ImpressionInfo + Ad_Info));
}
}
我不知道我怎樣才能在單行輸出。例如:
301%103%203%2017-09-20 07:49:46 2%google
01%103%203%2017-09-20 07:49:46 3%google
01%103%203%2017-09-20 07:49:46 1%microsoft
301%105%200%2017-09-17 11:48:59 2%google 1%microsoft
301%105%200%2017-09-17 11:48:59 3%google
301%105%200%2017-09-17 11:48:59 1%microsoft
這並不完全清楚你想如何格式化輸出。具體來說,在您的示例中有3個不同的行,前綴爲「301%105%200%2017-09-17 11:48:59」,其中一行包含「2%谷歌」和「1%微軟」在線上。那是故意的嗎? –
@Ben Chambers ...這是工作,當我做單獨解析。問題是客戶我切換到toString – KosiB