빅데이터(BigData)/Spark

spark-submit으로 spark 코드 실행시 Non-ASCII character 에러 대처 방법

leebaro 2020. 1. 4.
728x90

spark shell에서는 pyspark 코드가 실행되는데 .py 파일로 만든 후 spark-submit으로 실행하면 오류가 발생하는 경우가 있습니다.

 

제 경우에는 원인이 한글로 된 주석이 있어서였습니다.

 

해결 방법은 두 가지가 있습니다.

 

1. 한글로된 주석을 제거하기

2. py 파일을 utf8로 변경하는 방법

 

당연히 2번 방법을 원할 것입니다.

 

해결 방법은 아래와 같이 두 가지 중 하나를 선택하면 됩니다.

 

첫 번째, spark-submit을 실행하기 전 아래와 같이 pythonioencoding을 utf8로 변경합니다.

export PYTHONIOENCODING=utf8

두 번째, 파이썬 파일애서 아래 코드르 추가합니다.

import sys
sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1)

제가 문제를 해결할 때 사용한 방법은 첫 번째 방법입니다.

 

도움이 되시길 바랍니다.

 


참고

https://stackoverflow.com/questions/39662384/pyspark-unicodeencodeerror-ascii-codec-cant-encode-character

 

PySpark — UnicodeEncodeError: 'ascii' codec can't encode character

Loading a dataframe with foreign characters (åäö) into Spark using spark.read.csv, with encoding='utf-8' and trying to do a simple show(). >>> df.show() Traceback (most recent call last)...

stackoverflow.com

 

728x90