MatsuLab. Lecture Note/sougouenshu2008
基本木曜日の15:00〜。日程調整は随時連絡。
11/13
内容
課題
渡したMapReduce?の論文を読んでまとめてくること。また、Hadoopの仕組みについても自分なりに調べて
まとめてくること。
11/27
前回の確認
課題
指定されたディレクトリ以下のファイルを全て読み、単語の出現頻度を求めるプログラムを書け。
ファイルはテキストファイルとし、中身はasciiコードでエンコードされていると仮定してよい。
単語とは、a-z, A-Zのアルファベットで表されているものとする。その他の文字はすべて単語の区切り文字(空白文字)として扱う。また、大文字小文字は同一視する。例えば、
public void main(String argv[]) int main(int argc, *argv[])
は、
"public": 1, "void": 1, "main": 2, "string": 1, "argv": 2, "int": 1, "argc": 1, "char": 1
となる。それぞれ、検出した単語とその出現回数を表す。
対象ディレクトリはコマンドラインからの引数として渡す。すなわち、main関数のargvを通して指定する。指定されたディレクトリを再帰的にたどり、全ファイルについて頻度計算を行う。頻度はファイル単位ではなく、全ファイルをまとめた結果を返せばよい。
結果の出力
1行につき「単語 頻度」とスペース区切りで出力せよ。ただし、出現頻度順の降順でソートし、かつ同一頻度の場合は辞書順でソートせよ。例えば、上の例の場合では、
argv 2 main 2 argc 1 char 1 int 1 public 1 string 1 void 1
となる。
前回からのやり残し
基本的にターミナルからの作業となる。(sshができる環境から)
$ ssh USER-ID@nimbus.m.gsic.titech.ac.jp
$ rsh pad041
$ scp test.c USER-ID@nimbus.m.gsic.titech.ac.jp:/home/USER-ID/sougouenshu
export PATH=/usr/local/jdk1.6.0_11/bin:$PATH (Ctrl-xを押して、Yesとして保存して終了)