2015-05-15 55 views
0

在hadoop流媒體中,「-D stream.map.output.field.separator =。」和「-D stream.num.map.output.key.fields = 4」用於指定關鍵字段和值領域。 但在我的問題,根本沒有分隔符,記錄如下: AAA__BBBBBB CCC__DDDDDD 我想指定1到3個字符作爲鍵和最後的值,我該怎麼辦? 此外,哪裏會出現次要問題(二次排序),如何指定它們?如何在hadoop streaming中指定key和value的長度?

+0

你是什麼意思的二級鍵? Hadoop將首先按鍵排序,然後按值排序。如果你正確設置你的鍵/值對,那麼所有的排序應該正確。 – carpenter

回答

0

如果你的數據是這樣的:

AAA__BBBBBB 
CCC__DDDDDD 
... 

那麼你肯定有一個分隔符。該__將是你的分隔符,你可以告訴使用下面的命令的Hadoop這樣的:

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \ 
-D stream.map.output.field.separator=__ \ 
... 

你的鑰匙將AAACCC和你的價值觀會BBBBBBDDDDDD。您不需要-D stream.num.map.output.key.fields=4,因爲您只有一個分隔符(__)。

相關問題