본문 바로가기

분류 전체보기31

(pyspark+jupyterlab) Ubuntu내 분석 환경 설정 ubuntu 20.04 (multipass) python 3.8.9 pyspark 3.3 wget https://dlcdn.apache.org/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz Ubuntu 가상환경 셋팅 multipass launch -c 2 -m 2G --name machine focal Pyspark 다운로드 spakr 바이너리 파일을 다운로드 받는다. 여기엔 pyspark를 구동하는 라이브러리들이 모두 모아져 있다. https://www.apache.org/dyn/closer.lua/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz wget https://dlcdn.apache.org/spark/spark-3.3.1/s.. 2022. 12. 3.
[Python] Child process 생성 작업 간에 별도의 프로세스를 만들어서 작업을 처리해야할 때가 있다. 가장 흔하게는 controller 역할을 하는 어플리케이션에서 worker 혹은 executor 등의 작업 주체를 만드는 경우가 있다. Airflow에서 Celery worker를 사용할 때가 그렇다. airflow는 worker들을 데몬으로 미리 띄워놓는게 아니라 작업이 수행되는 때에 필요에 따라 worker process를 띄워서 사용한다. 이번 포스트에서는 간략하게 python으로 child process를 띄우는 코드를 소개한다. import os print(f'Current PID : {os.getpid()}') pid = os.fork() if pid > 0: _, ret = os.waitpid(pid, 0) print("Pa.. 2022. 12. 3.
[Java DataEngineering] Parquet 파일 쓰고 읽는 코드 정리 Write & Read Java를 이용해 Parquet 파일을 쓰고 읽는 코드를 소개한다. 라이브러리 버전 정보 org.apache.parquet:parquet-avro:1.12.2 org.apache.hadoop:hadoop-common:3.3.4 org.apache.hadoop:hadoop-mapreduce-client-core:3.3.4 유의점 parquet 파일 저장 코드를 소개하는 포스트들은 대게 Path 경로만 넣어서 writer를 빌드하는 방법을 사용한다. 허나 아쉽게도 해당 코드는 Deprecated 처리되었는데 이유는 정확히 모르겠다.. 어쨌거나 Path가 아닌 org.apache.parquet.io.OutputFile (interface) 를 구현한 클래스를 넣어야 한다. https://issues.apach.. 2022. 11. 25.
[Java Gradle] 등록된 라이브러리 Jar 목록 확인(Classpath) gradle 7.4 https://docs.gradle.org/7.4/userguide/userguide.html Java 프로젝트를 만들 때 간혹 추가한 외부 라이브러리가 classpath에 제대로 등록되지 않는 경우가 있다. 대게 문법 오류로 인한 문제겠다. 이럴 땐 제대로 등록된 라이브러리 목록을 봐가며 점검을 할 필요가 있다. 아래엔 Gradle Task를 이용해 등록된 라이브러리 Jar 목록을 출력하는 방법을 소개한다. Gradle 버전에 따라 문법이 다를 수 있으니 주의할 것! ... configurations { testImplementation { canBeResolved(true) } } dependencies { testImplementation 'org.junit.jupiter:jun.. 2022. 11. 25.