제너레이터(Generator)는 필요할 때마다 값을 하나씩 생성하고 반환하는 함수이다. 외부로 값을 보내기 위해 yield 키워드를 사용한다.제너레이터에서 yield를 만나면 값을 리턴하고 일시중지한 상태로 기다린다. 그러다 다시 호출되면 중단된 지점부터 다시 실행된다. def fibonacci(): a, b = 1, 1 while True: yield a a, b = b, a + bfib_gen = fibonacci()print(next(fib_gen)) # 1print(next(fib_gen)) # 1print(next(fib_gen)) # 2print(next(fib_gen)) # 3print(next(fib_gen)) # 5print(next(fib_gen))..
지난 실습에서 .parquet 라는 새로운 파일 포맷을 마주쳤다.빅데이터를 효율적으로 저장하는 파일 포맷이라고 하는데공식문서를 읽어보고 핵심적인 부분만 정리해보았다. 개요Parquet는 효율적인 데이터 저장 및 검색을 위한 오픈소스로, 열(칼럼) 기반으로 데이터를 저장하는 파일 형식이다. Parquet를 사용하면 크고 복잡한 데이터를 효율적(공간 효율, 속도)으로 읽고 쓸 수 있다. 1. 칼럼 기반 데이터 저장아래와 같은 테이블이 있다고 가정해보자.IDNameAge1John302Kim243Park244Lee155Alice28 기존 로우 기반의 데이터 저장 방식(csv)은 아래와 같이 저장한다.ID,Name,Age1,John,302,Kim,243,Park,244,Lee,155,Alice,286,Bob,2..
PySpark에서 MySQL를 연결하여 사용해본다. 디펜던시 설치지난번과 유사하게 mysql connecter jar 패키지를 디펜던시로 갖는다. 지난번처럼 pyspark에서 패키지를 관리하는 것 같지는 않으니 따로 jar 파일을 다운받아서 사용하도록 하겠다.링크에서 다운받을 수 있다. Docker로 Mysql 로컬 서버 열기1. mysql 이미지 내려받기docker pull mysql 2. 실행docker run --name CONTAINER_NAME -e MYSQL_ROOT_PASSWORD=PASSWORD -d -p 3306:3306 mysql:latest 3. 데이터베이스 추가 및 테이블 생성mysql을 실행하여 SQL 쿼리로 간단하게 데이터베이스와 테이블을 생성한다.docker exec -it m..
PySpark를 설치하고 S3에 업로드된 데이터를 읽는 코드를 작성해본다. PySpark 설치 및 실행1. pip을 통해 pyspark 패키지를 설치pip install pyspark 2. Java 설치Spark는 JVM 위에서 동작하기 때문에 Java가 설치되어있어야한다.Java 설치 3. 설치 확인간단한 코드를 실행하여 확인할 수 있다.from pyspark.sql import SparkSessionspark = SparkSession.builder.getOrCreate()df = spark.createDataFrame( [ (1, "Alice", 34), (2, "Bob", 36), (3, "Cathy", 30), ], ["id", "name",..
- Total
- Today
- Yesterday