The following code creates an IMDC named myIMDC, specifying the schema with a list of column definitions and specifying 100 MB for each partition. The IMDC columns are named Column0, Column1, and Column2.
import java.util.List; import java.util.ArrayList; import com.asterdata.ncluster.sqlmr.RowFunction; import com.asterdata.ncluster.sqlmr.data.RowEmitter; import com.asterdata.ncluster.sqlmr.data.RowIterator; import com.asterdata.ncluster.sqlmr.InMemoryDataCollectionRepository; import com.asterdata.ncluster.sqlmr.data.InMemoryDataCollection; import com.asterdata.ncluster.sqlmr.data.SqlType; import com.asterdata.ncluster.sqlmr.data.ColumnDefinition; ... public void operateOnSomeRows(RowIterator inputIterator, outputEmitter) { ... //give a name to the IMDC String myIMDC_Name = new String("myIMDC"); //create a schema for the IMDC with 3 columns //1. int //2. double //3. varchar List<ColumnDefinition> myIMDC_Schema = new ArrayList<ColumnDefinition>(3); //a java int myIMDC_Schema.add(new ColumnDefinition("Column0", SqlType.integer())); //a java double myIMDC_Schema.add(new ColumnDefinition("Column1", SqlType.double())); //a java String myIMDC_Schema.add(new ColumnDefinition("Column2", SqlType.varchar())); //Amount of Memory to use int memoryInMB = 100; //create the IMDC InMemoryDataCollection myIMDC = InMemoryDataCollectionRepository.createInMemoryDataCollection( myIMDC_Name, myIMDC_Schema, memoryInMB); ... }