HDFS 불러오기
HDFS 불러오기
HDFS에 저장된 데이터를 Batch Pipeline으로 불러오기 위해 사용하는 노드이다.
- File 브라우저를 통해 데이터가 저장된 클러스터와 저장경로를 선택할 수 있다.

- HDFS에 저장된 데이터의 delimeter와 header 포함여부를 선택할 수 있다.
- Schema를 자동 파싱하여 이후 구성할 ETL 작업에서 사용할 수 있다.

좌측 [데이터불러오기]노드 중 [HDFS불러오기]노드를 drag & drop 한 후 Property 항목을 입력한다. Property 패널의 [더보기+] 버튼을 누르면 입력가능한 전체 Property 항목을 볼 수 있다.
- file : File 브라우저에서 불러올 hdfs 파일 경로를 입력한다(직접 IP/경로를 입력, 또는 브라우저를 열어서 선택). 
- format : 불러올 파일의 형식을 정한다(json, parquet, orc, csv, text 중 택1). 
- delimiter : 구분자를 입력한다. 
- sampling : 전체 데이터가 많을 경우 일부만 sampling해서 사용할 수 있다. default는 100%(샘플링하지 않고 전체 데이터 모두 사용)이며, 80%, 50%, 30%, 10%, 5%, 1% 선택 가능하다. 
- option : 사용 가능한 옵션(헤더유무, nanValue, nullValue)을 설정한다. - key - value - 설명 - header - true / false - true : 헤더 설정, false : 헤더 미설정 - nullValue - 입력값 - 데이터에 포함된 입력값을 na처리 - nanValue - 입력값 - 데이터에 포함된 입력값을 na처리 - 불러오기 데이터에 "NULL"이라는 문자열이 있을 경우 이를 실제 null로 볼것인지 설정하는 옵션이다. NaN=NULL 으로 하면 NULL 문자를 실제 na로 인식하게 변경한다. - HIVE의 경우 null 데이터가 "NULL"이라는 문자로 표기되며, 이런 데이터를 추출해서 활용할 경우 default로 "NULL"이란 문자가 저장되므로 이를 실제 null값으로 변환하는 작업이 필요하다. 
- cluster : 자동입력됨 
- hightAvailability : 고가용성 사용 여부를 체크한다(7,8,9 에서 상세 정보 입력). 
- nameservices : 고가용성 호스트 명을 입력한다. 
- namenode1 : 호스트 명을 통해 접속할 실제 이중화 IP를 입력한다. 
- namenode2 : 호스트 명을 통해 접속할 실제 이중화 IP를 입력한다. 
- schema : column 및 dataType을 정의한다(우측 버튼 이용하여 전체 파싱 및 일부 추가 가능). 
property 패널의 option 처리방법
아래는 nullValue, nanValue를 처리하는 방법이다.
nullValue 처리
HDFS에서 불러오는 데이터에 "NULL"이라는 문자열이 있고, 실제로는 null 값일 경우 아래와 같이 설정한다.
- 실제 null 값인데 "NULL"이란 문자열로 입력됨

- property 패널의 5.option에서 [+] 버튼 클릭 후 아래와 같이 key, value 설정

- nullValue 설정 결과는 다음과 같음

nanValue 처리(추가정리필요)
HDFS에서 불러오는 데이터를 숫자 타입으로 파싱하고 싶은데 "NAN"과 같은 문자열이 입력되어 있을 경우 문자열컬럼으로 인식된다. 이럴 경우 문자열을 NaN(Not a Number)이란 키워드로 대체한 후 숫자타입 필드로 변경할 수 있다.
설정방법은 다음과 같다.
- "NAN"이란 문자열이 입력되어 자동파싱 결과 String type으로 매핑됨

- property 패널의 5.option에서 [+] 버튼 클릭 후 key, value 설정 후 11. schema에서 image_width 컬럼을 IntegerType()으로 변환

- nullValue 설정 결과는 다음과 같음

note
nanvalue 설정결과 이상여부 개발팀 확인필요(사용법미숙 or 기능오류)