To get the name, type, and size in bytes of each column of an IMDC , use the getStatsForColumns() method:
InMemoryDataCollection myIMDC =
InMemoryDataCollectionRepository.getInMemoryDataCollection(imdcName_);
if(myIMDC!=null)
{
List<InMemoryDataCollectionColumnInfo> imdcColInfoList =
myIMDC.getStatsForColumns();
// Returns meta statistics for each column
for (InMemoryDataCollectionColumnInfo colInfo : imdcColInfoList)
{
outputEmitter.addLong(myIMDC.numRows());
// Returns number of rows per IMDC
outputEmitter.addLong(myIMDC.totalBlockCount());
// Returns total memory blocks used in each IMDC
outputEmitter.addLong(myIMDC.totalMemBytes());
// Returns IMDC size in bytes
outputEmitter.addLong(myIMDC.imdcMaxInMem());
// Returns max size an IMDC can house in-memory
// (rest overflows to disk)
outputEmitter.addString(colInfo.getColName());
// Returns column name
outputEmitter.addString(colInfo.getColType());
// Returns Column SQL type
outputEmitter.addLong(colInfo.getMemBytes());
// Returns memory usage per column in Bytes
outputEmitter.emitRow();
}
}