我讀過,在hive查詢中,我們可以使用map/reduce腳本。在配置單元查詢中使用map/reduce java類
我們可以在Hive查詢中使用java map/reduce類。如果是這樣,請你提供樣品。
感謝 MRK
我讀過,在hive查詢中,我們可以使用map/reduce腳本。在配置單元查詢中使用map/reduce java類
我們可以在Hive查詢中使用java map/reduce類。如果是這樣,請你提供樣品。
感謝 MRK
請參考網址。它應該有所幫助。 Link
假設您已經創建了「MyMapper」和「MyReducer」類,並將它們放入「mymr.jar」jar文件中。您可以通過流媒體這樣使用它們:
FROM (
FROM src
MAP inkey, inval
USING 'java -cp myjar.jar
com.myco.mymr.MyMapper'
AS k, v
CLUSTER BY k) mapout
REDUCE k, v
USING 'java -cp myjar.jar
com.myco.mymr.MyReducer'
你可以開始編寫你自定義的映射和減速繼@Moiz阿拉法特提供的Link。
之後,製作一個罐子(比如說myjar.jar)。
這樣的自定義Mapper和Reducer的工作需要hive-contrib.jar,它可以在您的配置單元安裝的lib文件夾中找到。
在運行使用這些Mapper/Reducer的查詢之前,應該將這兩個jar添加到配置單元中。
hive> add file path/to/hive-contrib.jar;
hive> add file path/to/myjar.jar;
請使用添加文件和NOT 添加罐子。現在
,你可以寫你的查詢,如:
hive> FROM (
FROM src
MAP inkey, inval
USING 'java -cp myjar.jar:hive-contrib.jar com.myco.mymr.MyMapper'
AS k, v
CLUSTER BY k) mapout
REDUCE k, v
USING 'java -cp myjar.jar:hive-contrib.jar com.myco.mymr.MyReducer'
+1強調使用添加文件,而不是添加罐子。這是很容易犯的錯誤。 – javadba