[英]Groupby existing attribute present in json string line in apache beam java
我正在從 GCS 讀取 json 文件,我必須將數據加載到不同的 BigQuery 表中。 這些文件可能具有不同時間戳的同一客戶的多條記錄。 我必須為每個客戶挑選最新的。 我計划實現如下
但我無法繼續第 1 步。我看到GroupByKey.create()
但無法使其使用客戶 ID 作為密鑰。
我正在使用 JAVA 實現。 任何建議都會有很大幫助。 謝謝你。
在GroupByKey
之前,您需要將數據集放在鍵值對中。 如果您展示了一些代碼會很好,但在不了解的情況下,您將執行以下操作:
PCollection<JsonObject> objects = p.apply(FileIO.read(....)).apply(FormatData...)
// Once we have the data in JsonObjects, we key by customer ID:
PCollection<KV<String, Iterable<JsonObject>>> groupedData =
objects.apply(MapElements.via(elm -> KV.of(elm.getString("customerId"), elm)))
.apply(GroupByKey.create())
完成后,您可以檢查時間戳並按照您的想法丟棄所有最新的機器人。
請注意,您將需要設置編碼器等 - 如果您遇到困難,我們可以進行迭代。
作為提示/提示,您可以考慮Json 編碼器的這個示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.