private List<JsonStringHashMap<String, Object>> flatten( List<JsonStringHashMap<String,Object>> incomingRecords, String colToFlatten, String flattenedDataColName) { List<JsonStringHashMap<String,Object>> output = Lists.newArrayList(); for (JsonStringHashMap<String, Object> incomingRecord : incomingRecords) { List<?> dataToFlatten = (List<?>) incomingRecord.get(colToFlatten); for (int i = 0; i < dataToFlatten.size(); i++) { final JsonStringHashMap<String, Object> newRecord = new JsonStringHashMap<>(); newRecord.put(flattenedDataColName, dataToFlatten.get(i)); for (String s : incomingRecord.keySet()) { if (s.equals(colToFlatten)) { continue; } newRecord.put(s, incomingRecord.get(s)); } output.add(newRecord); } } return output; }