상황
- spark-submit시(master=yarn, deploy-mode=cluster) parameter를 한글로 주는 경우 한글이 깨지는 현상이 발생한다.
-Dfile.encoding=utf-8
의 옵션을 driver, executor에 적용 시UnicodeEncodeError
가 발생한다.
해결 과정
- spark 내에서 환경변수를 확인 시
'LANG': 'ko_KR.eucKR'
와 같은 결과를 확인하였다. - utf-8 인코딩이 적용되지 않아 한글이 깨진 것으로 보였다.
- yarn을 이용할 경우
spark.yarn.appMasterEnv.[EnvironmentVariableName]
옵션을 이용하여 환경변수를 설정 할 수 있다. - appMasterEnv 옵션을 이용하여 환경변수 LANG을 변경한다.
결론
- spark-submit 시에
--conf spark.yarn.appMasterEnv.LANG=ko_KR.UTF-8
옵션을 추가한다. - yarn cluster 모드 시에는
spark-env.sh
에 적용 시킨 환경변수들이 적용이 되지 않을 수 있다. - 추후 모든 yarn cluster 모드 작업에 LANG옵션을 추가하고 싶을 경우는
spark-defaults.conf
파일에 해당 옵션을 추가한다.
참고
반응형
'Spark' 카테고리의 다른 글
[Spark] json->parquet 저장시 특수문자 해결 (0) | 2021.10.07 |
---|---|
[Spark] json -> parquet로 저장시 스키마 충돌 문제 해결 (0) | 2021.10.06 |
[Spark] JSON string 파싱하기 (0) | 2021.08.26 |
댓글