0

I have year set of years-2013 to 2016.monthset like Jan-Dec. and i have to get data month wise from 10000 rows/records data But it gives java.lang.OutOfMemoryError: Java heap space . Help me whats wrong in below logic.

for (Integer year : yearSet) {

    List<EtrendMonthYearModel> etrendMonthYearModelList = new ArrayList<EtrendMonthYearModel>();

    for (Integer month : monthSet) {

        for (String zip : zipSet) {

            EtrendFilterBYModel etrendFilterBYModel = new EtrendFilterBYModel();

            for (int i = 0; i < etrendMonthYearModel.size(); i++) {

                EtrendMonthYearModel etrendMonthYearModelTemp = null;

                  if ((etrendMonthYearModel.get(i).geteTKeymy10() == (long)month) 
                          && (etrendMonthYearModel.get(i).geteTKeymy11() == year)
                          && (etrendMonthYearModel.get(i).geteTKeymy1().equals(zip))) 
                  {
                      etrendMonthYearModelTemp = new EtrendMonthYearModel();
                      etrendMonthYearModelTemp = etrendMonthYearModel.get(i);
                      etrendMonthYearModelList.add(etrendMonthYearModelTemp);
                  }

            }
            etrendFilterBYModel.setName(zip);
            etrendFilterBYModel.setMonth(month);
            etrendFilterBYModel.setLevel("ekeymy1");
            etrendFilterBYModel.setYear(year);
            String serializedObjList = "";
            serializedObjList = encodeMonYear(etrendMonthYearModelList);
            etrendFilterBYModel.setObjData(serializedObjList);
            etrendFilterBYModelZipList.add(etrendFilterBYModel);
        }
    }
}

rowCount= 0;
Batch batchProcessZip = QueryBuilder.batch();
for (EtrendFilterBYModel etrendFilterBYModelZipTemp : etrendFilterBYModelZipList) {
    Insert insert = QueryBuilder.insertInto("etrend_optimized_monthly");
    insert.value("year",etrendFilterBYModelZipTemp.getYear());
    insert.value("month",etrendFilterBYModelZipTemp.getMonth());
    insert.value("level",etrendFilterBYModelZipTemp.getLevel());
    insert.value("name",etrendFilterBYModelZipTemp.getName());
    insert.value("objdata",etrendFilterBYModelZipTemp.getObjData());
    batchProcessZip.add(insert);

    rowCount++;

    if(rowCount>1000)
    {
        cassandraTemplate.execute(batchProcessZip);
        batchProcessZip = QueryBuilder.batch();
        rowCount = 0;
    }

}
cassandraTemplate.execute(batchProcessZip);
Shrikant
  • 11
  • 4

0 Answers0