프로그래밍/python

[Python] pandas or pyspark to_csv 테이블 깨짐현상 해결법

장경훈 2022. 8. 3. 11:32

현재 팀 토이 프로젝트를 진행하면서 크롤링한 데이터를 데이터 테이블로 만든 후 CSV 파일로 export한 후 다시 불러와보니 아래 사진과 같은 현상이 발생했다. 

추출하기전 크롤링한 데이터 테이블
저장된 csv파일을 데이터 프레임으로 다시 불러왔을때

사진을 보면 테이블이 밀려 깨진 것들을 볼  수 있다.  내가 찾은 문제점은 총 2개이다

  1. 기본적으로 csv는 구분자가 , 로 되어있는데 이 테이블의 review부분에 , 이 포함되어 있어서 밀렸다고 생각한다. 나는 pyspark을 사용했기 때문에 이 문제를 해결하는 코드는 다음과 같다.
data_df.coalesce(1).write.option("sep","|")\
			.option("header","true")\
                        .csv('파일경로')

  2. review 데이터에 개행문자들이 많이 포함되어 있었던 게 문제가 되었던 것 같다. 이런 문제는 정규표현식을 사용하여 개행 문자를 삭제해주니 저장된 테이블이 정상적으로 불러와졌다. 내가 사용한 코드는 다음과 같다

from pyspark.sql.functions import regexp_replace, col

df=spark_df.withColumn('review', regexp_replace(col('review'), "\n", ""))

 

 

알고리즘 문제를 풀 때 정규표현식을 알면 편하다는 것을 알았지만 공부하기를 미뤄왔었다 하지만 전처리시에도 많이 쓰일것 같아서 한번 정리해서 글을 써야겠다고 생각했다. 또한이번 오류를 겪으면서 시간을 또 많이 쓰게 되었는데.. 첫 프로젝트이고 아직 많은 지식이 없기 때문에 더 열심히 공부해야 할것 같다 .