這是背景。我有以下輸入我的MapReduce工作(例如):(其實每一行代表一個用戶查詢這裏並不重要。)如何在Hadoop輸入格式中爲一個輸入行生成多個鍵值對?
Apache Hadoop
Apache Lucene
StackOverflow
....
而且我想我RecordReader
類讀取一行,然後通過幾個鍵值配對映射器。例如,如果RecordReader
得到Apache Hadoop
,那麼我想它生成以下鍵值對,並把它傳遞給映射器:
Apache Hadoop - 1
Apache Hadoop - 2
Apache Hadoop - 3
(「 - 」作爲分隔符這裏)而且我發現RecordReader
傳球鍵 - 在next()
方法值:
next(key, value);
每次RecordReader.next()被調用時,只有一個密鑰和一個值將被作爲參數傳遞。那麼我應該如何完成我的工作?
你的意思是我在第一次做這個工作地圖階段?但是這些值將會在下一個Reducer中一起收集。我想要的是將鍵值對發送給不同的映射器。例如,Mapper 1的「Apache Hadoop-1」,Mapper 2的「Apache Hadoop-2」就像這樣。 – Denzel
你爲什麼要這麼做?加快速度?你能解釋一下你的想法嗎? – aa8y
我在這裏犯了一個錯誤。你就在這裏。 – Denzel