我想從BigQuery中的2個表中提取數據,然後通過CoGroupByKey加入它。 儘管BigQuery的輸出爲PCollection<TableRow>
,CoGroupByKey
要求PCollection<KV<K,V>>
。 如何將PCollection<TableRow>
轉換爲PCollection<KV<K,V>>
?轉換自PCollection <TableRow>到PCollection <KV<K,V>>
0
A
回答
2
CoGroupByKey
需要知道哪些關鍵CoGroup
通過 - 這是KV<K, V>
的K
和V
是與此集合在這個鍵關聯的值。對幾個集合進行共同分組的結果會爲每個集合中的每個關鍵字提供此關鍵字的所有值。
因此,您需要將PCollection<TableRow>
轉換爲PCollection<KV<YourKey, TableRow>>
,其中YourKey
是您想要連接它們的鍵的類型,例如,在你的情況下,也許它可能是String
或Integer
,或其他東西。
進行轉換的最佳轉換大概是WithKeys
。例如。這裏有一個示例代碼轉換PCollection<TableRow>
由String
類型的假想userId
場鍵控PCollection<KV<String, TableRow>>
:
PCollection<TableRow> rows = ...;
PCollection<KV<String, TableRow>> rowsKeyedByUser = rows
.apply(WithKeys.of(new SerializableFunction<TableRow, String>() {
@Override
public String apply(TableRow row) {
return (String)row.get("userId");
}
}));
相關問題
- 1. PCollection <Entity>到PCollection <TableRows>
- 2. 谷歌數據流 - 創建多個PCollection一個PCollection <TableRow>< TableRow >
- 3. 簡單的方法將PCollection <T>合併到PCollection中<Iterable<T>>
- 4. Google Dataflow:PCollection <String>到PCollection <TableRow>適用於BigQuery插入
- 5. 分割KV <K,V> PCollection分成多個PCollections
- 6. 如何重新洗牌PCollection <T>?
- 7. 從PCollection <KV <String,String >>輸出多個文本文件
- 8. 從PCollection
- 9. 從BigQuery獲取TableSchema結果PCollection <TableRow>
- 10. 轉換列表<Students>到地圖<K, List<V>>
- 11. 將std :: vector <std :: pair <const K, V> *>轉換爲std :: vector <std :: pair <const K, V>>
- 12. 收集地圖流<K,V>到地圖<K,List<V>>
- 13. 轉換IEnumerable的<T>查找<T,K>
- 14. Cast map <K,shared_ptr <V>>來映射<K,shared_ptr <const V>>?
- 15. SortedList <K,V> vs SortedDictionary <K,V> vs詞典<K,V>
- 16. 出口PCollection <TableRow>爲CSV未知頭/表與未知模式
- 17. 轉換「任務<IList<T>>」到「的IList <T>」
- 18. wp_editor總是轉換<br>到<p> </p>
- 19. 轉換IEnumerable <Task<T>>到IObservable <T>
- 20. 確定pcollection是否爲空
- 21. nnoremap <C-k><C-w> k in vimrc
- 22. FileHashMap <K, V>
- 23. 無法轉換<p> <到<, >等ckeditor
- 24. 一個轉換POJO到<K,V>地圖
- 25. 返回MyNestedClass <K>當MyNestedClass不是MyNestedClass <K>?
- 26. 類條目<K,V>實現了Map.Entry <K,V>
- 27. 如何將字符串的PCollection轉換爲TableRows?
- 28. 轉換<和>
- 29. 轉換列表<MyObject>轉換成詞典<obj.string,列表<obj.ID>>
- 30. 自IEnumerable <IEnumerable的<string>>轉換爲ICollection的<T>