[맵리듀스]parse 클래스
package insertCsv;
import org.apache.hadoop.io.Text;
public class parseCsv {
private int year;
private int month;
private int day_of_month;
private String unique_carrier;
private String flightnum;
private int airtime;
private int arrdelay;
private int depdelay;
private int distance;
private int cancelled;
private String cancellation_code;
public parseCsv(Text text){
try{
String[] columns = text.toString().split(","); // csv파일 한줄의 엘리먼트들은 ,로 구분되어 있다.
year = Integer.parseInt(columns[0]);
month = Integer.parseInt(columns[1]);
day_of_month = Integer.parseInt(columns[2]);
unique_carrier = columns[10];
flightnum = columns[11];
//airtime = Integer.parseInt(columns[15]);
if(!columns[15].equals("NA")){
arrdelay = Integer.parseInt(columns[15]);
} else {
arrdelay = 0;
}
if(!columns[16].equals("NA")){
depdelay = Integer.parseInt(columns[16]);
} else {
depdelay = 0;
}
if(!columns[20].equals("NA")){
distance = Integer.parseInt(columns[20]);
} else {
distance = 0;
}
//cancelled = Integer.parseInt(columns[23]);
//cancellation_code = columns[24];
} catch(Exception e){
System.out.println("Eroor pashing a record :" + e.getMessage());
}
}
public int getYear() {
return year;
}
public int getMonth() {
return month;
}
public int getDay_of_month() {
return day_of_month;
}
public String getUnique_carrier() {
return unique_carrier;
}
public String getFlightnum() {
return flightnum;
}
public int getAirtime() {
return airtime;
}
public int getArrdelay() {
return arrdelay;
}
public int getDepdelay() {
return depdelay;
}
public int getDistance() {
return distance;
}
public int getCancelled() {
return cancelled;
}
public String getCancellation_code() {
return cancellation_code;
}
}
항공데이터 ( 2008.csv ) 로 부터 필요한 부분만 split하여 get메소드를 이용하여 가져오는 클래스
distance 거리 , arrdelay, depdelay, 출발도착지연시간, 3가지를 가져온다...( 추후 더많은 data응용예정 )
지연시간의 경우 0( 지연이 없었으면 )이아니라 NA로 표기되어 있기 때문에 필터링하고
distance가 항공기가 이륙하지 않았으면 0이어야 되는데 확인이 어렵다 ...( data가 커서 엑셀에서 못읽음 )