빅데이터

[맵리듀스]parse 클래스

romance penguin 2017. 1. 5. 18:46
반응형

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가 커서 엑셀에서 못읽음 )


반응형