package com.chickling.models.writer;
import com.chickling.bean.job.JobLog;
import com.chickling.boot.Init;
import com.chickling.face.ResultWriter;
import com.chickling.util.PrestoUtil;
import com.google.common.base.Strings;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.File;
import java.util.HashMap;
/**
* Created by gl08 on 2016/9/23.
*/
public class LocalWriter implements ResultWriter {
private Logger log=LogManager.getLogger(LocalWriter.class);
private JobLog jobLog;
private String tableName;
private String exception="";
@Override
public void init(Object parameter) {
HashMap map= (HashMap) parameter;
this.jobLog= (JobLog) map.get("jobLog");
this.tableName= (String) map.get("tableName");
}
@Override
public String getException() {
return this.exception;
}
@Override
public Integer call() {
String fs=File.separator;
String csvResultPath= Init.getCsvlocalPath()+fs+jobLog.getFilepath().trim().replace(" ","");
while (csvResultPath.endsWith("\\") || csvResultPath.endsWith("/")){
csvResultPath=csvResultPath.substring(0,csvResultPath.length()-1);
}
String fileName=jobLog.getFilename().trim().replaceAll("\\\\","").replaceAll("/","");
String result=new PrestoUtil().writeAsCSV(tableName,csvResultPath+File.separator+fileName,true);
log.info("tmp csv file Path is "+result);
if(!Strings.isNullOrEmpty(result)) {
log.info("Save Result to Local CSV File Success !!! ");
}else{
log.error("Save CSV File Error");
return 0;
}
return 2;
}
}