get_db()FastAPI는 비동기 웹 프레임워크로 데이터베이스와 상호작용을 위해 SQLAlchemy 같은 ORM을 자주 사용한다. 일반적으로 데이터베이스 세션을 관리하기 위해 get_db() 함수를 정의하여 사용하는데, 알아야 할 개념과 함수의 동작 방식에 대해 알아보려고 한다.def get_db(): db = SessionLocal() try: yield db finally: db.close()개념get_db()에 사용되는 SessionLocal과 yield의 개념을 숙지하기 위해 ORM, Session & SessionLocal, yield vs return을 소개한다. 여기서 설명하는 개념은 Python의 SQLAlchemy를 기준으로 소개하므로 다른 기..
Spark 프로그래밍 : DataFrameSpark 데이터 처리Spark 데이터 시스템 아키텍처데이터 병렬처리데이터 분산하둡 맵의 데이터 처리 단위는 디스크에 있는 데이터 블록 (128MB)Spark에서는 이를 파티션 (Partition)이라 부름, 파티션의 기본 크기도 128MB나눠진 데이터를 동시 처리MapReduce에서 N개의 데이터 블록으로 구성된 파일 처리 시 N개의 Map 태스크 실행Spark에서는 파티션 단위로 메모리에 로드되어 Executor 배정데이터 분산 -> 파티셔닝 -> 병렬 처리Executor는 할당된 CPU 수만큼의 태스크 처리 가능적절한 파티션 개수 = Execution 개수 * Execution 당 CPU 수Spark 데이터 처리 흐름데이터 프레임은 작은 파티션들로 구성되며,..
문제 1) CSV 파일을 읽고 파일에 쓰기 파이스파크로 똑같이 하고 차이를 관찰한다. 아마 여러 개의 파일이 출력되는 것을 확인할 수 있다. 무슨 일이 일어났는지 간단히 설명하고 어떻게 여러 개의 출력물을 하나의 파일로 합칠 수 있을지 간단히 답해보자. Pyspark read/write 파이썬에서 스파크를 활용하기 위해서는 기본적으로 Session을 지정해주어야 한다. from pyspark.sql.session import SparkSession Sparksession을 확인하면 스파크의 버전과 AppName도 함께 출력된다. AppName은 함수를 통해 지정할 수 있다. sc = SparkContext.getOrCreate() spark = SparkSession(sc) spark # SparkSes..