![JAR search and dependency download from the Maven repository](/logo.png)
com.datastax.data.exploration.service.chart.impl.ParetoServiceImpl Maven / Gradle / Ivy
The newest version!
package com.datastax.data.exploration.service.chart.impl;
import com.alibaba.fastjson.JSONObject;
import com.datastax.data.exploration.biz.datatable.DataTable;
import com.datastax.data.exploration.biz.datatable.column.NomialColumn;
import com.datastax.data.exploration.biz.stat.Pareto;
import com.datastax.data.exploration.common.DataTypeHandler;
import com.datastax.data.exploration.common.File2DataTable;
import com.datastax.data.exploration.service.chart.ParetoService;
import com.datastax.data.exploration.util.Consts;
import org.javatuples.Pair;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 帕累托图
*
* @author songfu 2018/1/11
*/
@Service("paretoService")
public class ParetoServiceImpl implements ParetoService {
/**
* 获取帕累托图初始化数据
*
* @param id 数据集 id
* @return 返回的是获取帕累托图初始化数据
*/
@Override
public JSONObject paretoInit(String id) {
Pair, List> pair = DataTypeHandler.numericDiscrete(File2DataTable.tableSchema(id));
List listVal = pair.getValue0();
List listGroup = pair.getValue1();
listVal.addAll(listGroup);
if (listGroup.size() == 0) {
listGroup.add(Consts.NONE);
}
if (listVal.size() == 0) {
listVal.add(Consts.NONE);
}
DataTable table = File2DataTable.exactTable(id);
List valSubs = new ArrayList();
for (String val : listVal) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", val);
if (listGroup.contains(val)) {
NomialColumn nomialColumn = (NomialColumn) table.getColumns().getColumn(val);
jsonObject.put("subs", nomialColumn.distinct());
} else {
String[] vals = {Consts.NONE};
jsonObject.put("subs", vals);
}
valSubs.add(jsonObject);
}
JSONObject json = new JSONObject();
json.put("groups", listGroup);
json.put("vals", listVal);
json.put("valSubs", valSubs);
return json;
}
/**
* 获取帕累托图展示数据
*
* @param id 数据集 id
* @param group 分组属性
* @param val 统计属性
* @param valSub 分项
* @return 返回的是累托图展示数据, json数组, 每组数据对应分组属性的数据
*/
@Override
public List paretoSelect(String id, String group, String val, String valSub) {
if (Consts.NONE.equals(group) || Consts.NONE.equals(val)) {
return new ArrayList<>();
}
return Pareto.operator(id, group, val, valSub);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy