function groupByField(data, groupField) {
let groupData, location, results = {};
const dateFilter = arrow.predicate.custom(i => {
const date = toDate(data.getColumn('Date').get(i));
return (date.getMonth() <= 6);
}, b => 1);
data.filter(dateFilter)
.scan((index) => {
const groupFieldData = groupData(index);
const groupArray = results[groupFieldData];
if (!groupArray) {
results[groupFieldData] = [];
}
const dataRecord = {};
dataRecord[groupField] = groupFieldData;
dataRecord['location'] = location(index);
results[groupFieldData].push(dataRecord);
}, (batch) => {
groupData = arrow.predicate.col(groupField).bind(batch);
location = arrow.predicate.col('LocationDescription').bind(batch);
});
return results;
}