我將以一個例子開始。假設輸入數據是一樣的東西如何將reducer的輸出寫入數據庫?
User1,product1,time1
User1,product2,time2
User1,product3,time3
User2,product2,time2
User2,product4,time6
現在預計的輸出是我必須將數據插入到數據庫(塞式(鍵值存儲),在我的情況),其中數據格式應爲
User1, [ [product1,time1],[product2,time2],[product3,time3] ]
User2, [ [product2,time2],[product4,time6] ]
所以在映射器I輸出下面
UserID, [productid,timestamp]
請不要以爲[X,Y]意味着我輸出列表我可能從mappper以任何方式發送數據可能會寫入數據的自定義對象
所以在接收端我在格式
User1, [ [product1,time1],[product2,time2],[product3,time3] ]
User2, [ [product2,time2],[product4,time6] ]
現在有數據,我可以做兩件事情
a)我可以編寫邏輯在reducer中將數據推入數據庫 (我不想這樣做)
b)我想要做的是,當我們執行Context.write()時,我想要數據到b e寫入數據庫。
請幫幫忙怎麼會這樣做,如果可能的附加代碼片斷或僞代碼
PS:這是什麼Context.write()呢?它寫在哪裏?它的步驟和階段是什麼?
context.write滿足您的需求在HDFS將數據寫入到文件或地方提到。稍後您可以將該數據指向外部配置單元表,以便可用於查詢或使用hbase讀取數據。 –