728x90
프로젝트를 하면서 python2 version과 python3 version의 차이 때문에 생긴 에러가 있었는데, 그에 따라 python version 별 차이점을 간단하게 정리해보려고 합니다.
1. 프로젝트에서 발생한 에러
spark 프로젝트를 하면서 L 즉 LongType의 데이터를 다루게 되었습니다. 해당 코드도 그에 맞게 작성 했는데,
python 2 version로 script를 돌릴 때는 문제없이 돌 던 것이 default로 설정 되어있던 python 3 version에서는 에러가 발생했습니다.
log를 살펴보니,,, LongType에 관한 에러라고 나왔고.
python 2 와 3의 차이점을 살펴 보았습니다.
PYTHON 2 | PYTHON 3 | |
PRINT가 함수가 아니라 ()없이 ""만으로도 사용 할 수 있었다. | PRINT가 함수가 되면서 ()는 필수가 되었다. | |
LONG*(프로젝트issue와 관련된 변경사항) | LongType, IntType이 따로 있었다. | LongType은 사라지고 IntType로 통합되었다. |
int/int | int/int 2/3은 0(int)으로 나온다. | int/int 2/3은 0.66666 (float)으로 나온다. |
String, unicode | string type unicode type 따로 있었다. | String type으로 통일, bytes 타입이 생겼다. |
이외에도 다양한 변경점이 있지만, 주요한 변경점은 위와 같다고 볼 수 있습니다.
2.프로젝트 issue 해결
python3에서는 LONG type이 사라지면서 Long type을 인식하지 못하는 에러를 뿜어내고 있었습니다.
우선 급한대로 python2 와 3을 호환하는 코드를 작성하진 않았고, (기존의 HQL -> pyspark 으로 변환하는 작업이라)
기존 python2 interpreter를 사용하여 에러를 회피하였습니다.
728x90
'language > Python' 카테고리의 다른 글
[Python] (.ipynb) jupyter notebook 파일 형식 -> (.py) 파이썬 스크립트 변환하기 (0) | 2021.10.26 |
---|---|
[Python] PIP란? Virtualenv란? 개념,활용 (0) | 2021.09.24 |
[Python] 조건문(if)-제어문,분기문과 차이, 반복문(while문,for문), 예외처리(try, except, else, finally) 개념과 예제 (0) | 2021.01.13 |
[Python] 파이썬의 자료형과 예제 (0) | 2021.01.12 |
[Python] (Web Scraping, 데이터 크롤링) Selenium vs Scrapy vs Beautiful Soup (0) | 2021.01.12 |
댓글