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;
}