본문 바로가기
728x90

pyspark20

[Spark Tuning] CSV vs Parquet(columnar format) in spark 성능비교하기 [File 크기] 컬럼 수: 21개의 컬럼 레코드 수: 총 3,647,595 rows(records) csv: 578MB parquet: 44.7MB (gz.parquet: 34.6MB) [비교 관점] spark에서의 성능이란 file을 스캔할 때 스캔한 양(읽어들인 양)과 스캔시간이 중요 [CSV vs Parquet 특징 비교] (json은 덤ㅎㅎ) 1. CSV csv는 일반적인 text, 즉 row단위로 읽는 file format 1) 1개의 column select df_csv.select(F.col("Exam_No")).show(100000) Physical plan == Physical Plan == CollectLimit (3) +- * Project (2) +- Scan csv (1) (1).. 2023. 1. 25.
[Python] pandas vs pyspark 사용 및 코드 비교 이번 포스트에는 pyspark과 pandas를 쓰임새를 비교 해보고, pyspark의 코드를 pandas코드로 옮겨보고 비교해보겠습니다. 1. Pandas vs Pyspark 언제쓸까? pandas와 spark는 dataframe이라는 SQL 테이블 또는 Excel 스프레드 시트에서와 같이 이질적으로 유형이 지정된 열이있는 데이블 형식 데이터를 다루게 될 때 아주 적합함 대부분의 데이터처리에는 pandas 라이브러리를 통해 해결했었는데, pandas와 spark의 가장 큰 차이는 핸들링하는 데이터의 양의 크기 pandas는 통상적으로 spark보다 작은 데이터 처리에 대해서는 속도가 빠르다고 하는데, 10GB이상의 파일 처럼 파일의 크기가 커지게 되면, pandas는 메모리용량의 부족으로 인해 성능이 저.. 2022. 9. 22.
[Spark] PySpark read & write + partitioning 간단한 예시문제 python read&write 과 partition에 대해 아래의 링크에서 받은 파일로 다음과 같은 문제를 만들었습니다. https://github.com/udacity/data-analyst/blob/master/projects/bike_sharing/201508_trip_data.csv 혹은 아래의 링크에서 201508_trip_data.csv 파일 다운로드 후 Spark에서 Data Read https://github.com/Spidyweb-3588/python_skillup/tree/main/201508data 문법적인 자유도에 관한 문제를 보시려면 아래의 링크를 참조해주세요 2022.03.26 - [BigData/Spark & Spark Tuning] - [Spark] 스파크의 문법적 자유도,.. 2022. 8. 23.
[Python] re 모듈, 정규 표현식(정규식) 개념과 완전 정복하기(regex cheat sheet) SQL, HIVE, PySpark에서의 regex 이번 포스트에서는 정규표현식의 개념과, python에서 정규표현식을 지원하는 re 모듈에 대해서 정리하겠습니다. 1. 정규 표현식이란? 정규 표현식(Regular Expressions)은 복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬만의 고유 문법이 아니라 문자열을 처리하는 모든 곳에서 사용, 정규식이라고도 부름 2. 정규 표현식의 기초, 메타 문자 ※ 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자 . ^ $ * + ? { } [ ] \ | ( ) 1) 문자 클래스 [ ] 문자 클래스로 만들어진 정규식은 '[ ] 사이의 문자들과 매치'를 의미 예를 들어, 정규 표현식 [abc] 는 'a, b, c 중 한 개의 문자와 매치'를 뜻함 즉, 어떠한 문자열에("defg") 위의.. 2022. 4. 9.
[Spark] 스파크의 문법적 자유도, 스키마 조작, dummy 생성 이번 포스트에서 다룰 것 스파크의 다양한 문법을 소개 스키마를 정의하여 dataframe 만들기 dummy데이터 생성 아래의 링크에서 201508_trip_data.csv 파일 다운로드 후 Spark에서 Data Read https://github.com/Spidyweb-3588/python_skillup/tree/main/201508data read&write + 파티션 조작에 관한 간단한 문제예시를 보시려면 아래의 링크를 참조해주세요. 2022.08.23 - [BigData/Spark & Spark Tuning] - [Spark] PySpark read & write + partitioning 간단한 예시문제 1. Start_Station,End_Station 컬럼을 4가지 방법으로 조회 #1. cs.. 2022. 3. 26.
[Spark] Install PySpark with PiP & 파일 읽고, 쓰기 실습 이번 포스트는 예전에 포스트했었던 spark를 설치하여 jupyter notebook 환경에서 pyspark를 사용하는 것보다 활용하기 쉬운 pip를 통해 pyspark를 다운로드하고 확인하고, 실습해보겠습니다. 예전 포스트 링크 2021.02.17 - [BigData/Spark & Spark Tuning] - [PySpark] Spark 환경 설정 with Anaconda(Jupyter Notebook) Python(Pyspark Standalone mode) on windows [PySpark] Spark 환경 설정 with Anaconda(Jupyter Notebook) Python(Pyspark Standalone mode) on windows 이번 포스트는 windows 10에 jupyter n.. 2022. 2. 24.
[Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 이번 포스트에는 정해진 시간에 EC2를 띄우는 EC2 image builder 생성 및 결론과 보완할 점, 추가로 해볼 기능을 정리하겠습니다. 어떤 프로젝트인지 잘 모르시는 분은 아래의 링크를 참고해주세요. 2022.02.17 - [BigData/Project] - [Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 1. 프로젝트 개요 EC2에 환경 구성이 되지 않으신 분은 아래의 링크를 참고해주세요 2022.02.17 - [BigData/Project] - [Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 4. EC2 서.. 2022. 2. 17.
[Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 5. aws cli configure, airflow dag 구성 및 S3로 데이터 보내기, ec2 자동으로 종료하기 이번 포스트에는 airflow dag를 구성하여 pyspark job을 실행시킨 후, S3에 데이터를 복사해 넣고 EC2를 자동으로 종료하겠습니다. 어떤 프로젝트인지 잘 모르시는 분은 아래의 링크를 참고해주세요. 2022.02.17 - [BigData/Project] - [Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 1. 프로젝트 개요 EC2에 환경 구성이 되지 않으신 분은 아래의 링크를 참고해주세요 2022.02.17 - [BigData/Project] - [Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 4. EC.. 2022. 2. 17.
[Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 4. EC2 서버 생성 및 pyspark, airflow,MySQL 설치 이번 포스트에는 EC2서버 환경을 구성하고, spark, airflow를 설치하여 이미지로 저장하겠습니다. 어떤 프로젝트인지 잘 모르시는 분은 아래의 링크를 참고해주세요. 2022.02.17 - [BigData/Project] - [Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 1. 프로젝트 개요 1. EC2서버 띄우기 1) EC2생성 및 Ubuntu Server 20.04 LTS를 선택합니다. 2) 인스턴스 타입 선택 현재 airflow 및 pyspark를 한 곳에서 돌리는 구조기 때문에, 적당한 크기의 t2.large타입을 선택합니다. 3) public ip 부여 및 IAM role 부여 public IP를.. 2022. 2. 17.
728x90