Excel 파일에서 행 추출
| 항목 | 값 |
|---|---|
| 화면 이름 | Extract rows from an Excel file |
| 식별자 | parseExcelV2 |
| 지원 실행 방식 | Batch |
| 범주 | 파일과 미디어 입력 (File) |
Excel 파일을 행으로 해석합니다. .xls, .xlt, .xltm, .xltx, .xlsx, .xlsm을 지원합니다. 파일 하나의 처리는 여러 Spark 실행기로 분산되지 않으므로 입력이 정확히 한 파일이면 local Spark 사용이 권장됩니다. 큰 파일의 메모리가 부족하면 실행기 메모리를 늘리고 local Spark이면 드라이버 메모리를 늘립니다. 큰 파일은 미리보기가 불가능하더라도 적절한 빌드 설정으로 배포할 수 있습니다.
입력 인자
| 이름 | 지정 여부 | 자료형 | 의미와 조건 |
|---|---|---|---|
Dataset | 필수 | Files | 처리할 파일 데이터셋입니다. |
Rows to skip | 필수 | Literal<Integer> | 각 시트 앞에서 건너뛸 행 수입니다. 첫 행을 헤더로 처리하지 않는데 헤더가 있다면 그 행도 건너뛸 수에 포함해야 합니다. |
Schema | 필수 | List<Literal<String>> | 이름 패턴에 맞는 시트의 데이터에 대응하는 순서 있는 열 이름 목록입니다. |
Source sheet pattern | 필수 | Literal<String> | 이 정규식에 부분 일치하는 이름의 모든 시트를 읽습니다. 기본값인 빈 문자열은 모든 시트를 읽습니다. 이름 전체와 일치시키려면 앞에 ^, 뒤에 $를 추가합니다. |
Output column to put the file path | 선택 | Literal<String> | 지정하면 해석한 파일 경로를 담는 이 이름의 출력 열을 만듭니다. |
Output column to put the row number | 선택 | Literal<String> | 지정하면 해석한 행의 1 기준 행 번호를 담는 이 이름의 출력 열을 만듭니다. |
Output column to put the sheet name | 선택 | Literal<String> | 지정하면 해석한 행의 시트 이름을 담는 이 이름의 출력 열을 만듭니다. |
Treat first row (after skipping) as header | 선택 | Literal<Boolean> | 건너뛴 뒤의 첫 행을 헤더로 사용합니다. 아래 헤더 이름 정리 규칙을 적용한 뒤 대소문자를 구분하지 않고 스키마에 매핑합니다. 시트와 파일 사이에 열 순서나 필드 집합이 달라도 됩니다. |
헤더 이름 정리
헤더 옵션을 켜면 건너뛴 뒤 첫 행의 필드 순서로 시트 열과 스키마 열을 대응시킵니다. 시트나 파일마다 순서가 달라도 됩니다. 스키마의 모든 필드가 모든 시트에 있을 필요는 없으며 시트의 모든 필드를 스키마에 포함할 필요도 없습니다.
헤더 셀 문자열에 다음 규칙을 적용한 뒤 대소문자를 구분하지 않고 스키마 열 이름에 매핑합니다.
- 문자열 앞에 있는
(),;{}\n\t=문자들의 연속 구간을 제거합니다. 목록의 첫 문자는 ASCII 공백입니다. - 같은 문자들이 나머지 위치에 있으면 밑줄로 바꿉니다.
- 연속 밑줄을 하나로 합칩니다.
- 끝에 밑줄이 있으면 제거합니다.
- 길이가 0이면
_untitled_column으로 바꿉니다. - 위 규칙을 적용한 결과가 대소문자를 무시했을 때 중복이면 두 번째부터 번호 접미사를 붙입니다. 첫 접미사는
_2입니다.