gzip 압축 된 CSV 파일을 읽는 동안 이상한 문자 [중복]
UTF-8 인코딩 파일로 저장 한 CSV 파일을 읽으려고합니다. Pandas로 파일을 읽으려고하면 시간이 많이 걸리지 만 원하는 출력을 얻습니다.
out_pd = pd.read_csv('../files/example_file_out.csv.gzip', sep='\t', encoding='utf-8', compression='gzip')
HDFS에서 정확히 동일한 파일을 읽기 위해 Spark에서 거의 동일한 작업을 수행합니다.
out_spark = spark.read.format('csv').options(header = "true", sep = "\t", encoding = "UTF-8").load("/Path/to/Folder/example_file_out.csv.gzip" )
out_spark.show()
이 결과 :
+ ------------------------------------------------- -------------------------------------------------- -+ | _ example_file_out.csv.gzip Ѳ Fr$�|�l�A?��̈��L��F��cWZ�F��Ef�^�5C�k�hW���H$ j xH? } N | + ------------------------------------------------- -------------------------------------------------- -+ | @ # "<= <^ ... | |? ϟ Ͽ O ... | |… x o e> Y ... | + ------------------------------------- -------------------------------------------------- -------------- +
나는 내가 뭘 잘못하고 있는지 정말 모른다. 도움에 미리 감사드립니다!
답변
Spark는 파일 확장자를 사용하여 파일 압축 형식을 유추합니다. 기본적으로 gzip 파일은 확장자 .gz
가이므로 .gz
대신 확장자를 갖도록 파일의 이름을 바꾸면 .gzip
Spark가 csv 파일의 압축을 제대로 풀 수 있습니다.