私は弾力的なmapreduceを学び、Amazonチュートリアルセクション(以下に示すコード)で提供されているWord Splitterの例題から始めました。この例では、提供されたすべての入力文書のすべての単語の語数が生成されます。EC2でmapreduceジョブを実行しているときにファイル名を取得する方法は?
しかし、私はワードカウントの出力をファイル名、すなわち1つの特定のドキュメント内の単語の数で取得したいと考えています。単語カウント用のPythonコードは標準入力からの入力を受け取るので、どの入力行がどのドキュメントから来たのかをどのようにして知ることができますか?
ありがとうございました。典型的な例ではWORDCOUNT
#!/usr/bin/python
import sys
import re
def main(argv):
line = sys.stdin.readline()
pattern = re.compile("[a-zA-Z][a-zA-Z0-9]*")
try:
while line:
for word in pattern.findall(line):
print "LongValueSum:" + word.lower() + "\t" + "1"
line = sys.stdin.readline()
except "end of file":
return None
if __name__ == "__main__":
main(sys.argv)
ありがとうございました!私はあなたのブログを見て、あなたは初心者のために "Hadoop the Defn guide"という本をお勧めします。しかし、あなたが言及したように、私はMapReduceの方法で考える必要があります。それのための良い情報源はありますか?また、Hadoopの開発について学ぶのに十分な本ですか? – Nik
MR(http://goo.gl/kECuV)で解決されたさまざまな問題を確認します。 GoogleのMR動画(http://goo.gl/RRoVP)をご覧ください。 「Hadoop:The Definitive Guide」という本は、Hadoopの聖書のようなものです。 「Apress:Pro Hadoop」(http://goo.gl/VTcfa)もありますが、私はそのスタイルが気に入らないのです。 –
FYI、新しいバージョンのHadoopでは、変数はmap_input_fileです。 (2.0.2の場合) – Paul