This page describes the Hama Shell.

Commands

Load      load the matrix from the matrix file using user specified !MapReduce class. 
          for example:
 
          hama> a = load "fileA" as Matrix using MyMapReduce.class MAP 10 REDUCE 1; 
          hama> b = load "fileB" as Matrix using MyMapReduce.class;

Add      the matrix addition. 
          such as : 

          hama> c = a + b.

Multiply   the matrix multiplication. 
          such as : 

          hama> d = a * b.

Save      save the matrix as a file. 
          such as :
          
          hama> save c as "fileC".

Examples

hama > a = load 'fileA' as matrix using bulkload.class map 10;
hama > b = load 'fileB' as matrix;
hama > c = a;
hama > d = (a+b) * (c+a) map 20 reduce 1;
hama > save d as 'fileD'

Grammar

<hamaexpression> := <expr> ";"

<expr> := <IDENTIFIER> "=" <basicoperation> ["MAP" <integer>] ["REDUCE" <integer>] | "SAVE" <IDENTIFIER> "AS" <filename>

<basicoperation> := <algebraop> | <loadop> | <randmatrixop>

<loadop> := "LOAD" <filename> "AS" <typename> "USING" <classname>

<randmatrixop> := "MATRIX.RANDOM" <integer> <integer>

<algebraop> := <additiveop>

<additiveop> := <multiplicationop> ( ( "+" | "-" ) <multiplicationop> )*

<multiplicationop> := <unaryop> ( "*" <unaryop> )*

<unaryop> := "(" <additiveop> ")" | <IDENTIFIER>

<typename> := "matrix"

<filename> := <quotedstring>

<classname> := <quotedstring>

<quotedstring> := "'"<string>"'"

Still in work...