1.公司最近要做风控系统, 不是很懂,看了一些方法,记录下来。 加载arff 文件 和保存文件。
@Service("commonFunctionBiz")
public class CommonFunctionBizImpl implements CommonFunctionBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(CommonFunctionBizImpl.class);
@Override
public Instances loadArffFile(String arffFilePath) {
LOGGER.info("[loadArffFile]:使用指定加载器的方法来加载ARFF文件");
Instances data = null;
try {
// LOGGER.info("[loadArffFile]:使用DataSource类的read方法来加载ARFF文件");
// Instance data = ConverterUtils.DataSource.read(arffFilePath);
ArffLoader loader = new ArffLoader();
loader.setSource(new File(arffFilePath));
data = loader.getDataSet();
} catch (BizException bizE) {
LOGGER.error("加载ARFF文件出现业务异常,错误原因:", bizE);
} catch (Exception e) {
LOGGER.error("加载ARFF文件出现系统异常,错误原因:", e);
}
return data;
}
@Override
public void saveArff2Csv(String savePath, Instances data) {
LOGGER.info("[saveArff2Csv]:保存ARFF到CSV文件开始");
try {
// 文件扩展名与数据文件格式相符,可用DataSink类
// ConverterUtils.DataSink.write(savePath, data);
// 明确指定CSVSaver转换器
CSVSaver saver = new CSVSaver();
saver.setInstances(data);
saver.setFile(new File(savePath));
saver.writeBatch();
} catch (BizException bizE) {
LOGGER.error("保存CSV文件出现业务异常,错误原因:", bizE);
} catch (Exception e) {
LOGGER.error("保存CSV文件出现系统异常,错误原因:", e);
}
}
}