Spark User Defined Functions (UDFs)
2023. 10. 1. 17:29
데이터 엔지니어링/Spark
Spark 를 사용하다보면 UDFs 를 사용하여 새로운 column 을 만드는 경우가 많이 있다. 그래서 Spark UDFs 에 대해서 정확하게 무엇을 말하고 어떻게 사용하는 지에 대해서 정리해보려고 한다. 정리는 아래의 공식 문서를 참고해서 정리해보았다. https://spark.apache.org/docs/latest/sql-ref-functions-udf-scalar.html Scalar User Defined Functions (UDFs) - Spark 3.5.0 Documentation spark.apache.org Spark User-Defined Functions Spark User-Defined Functions (UDFs) 는 하나의 행에서 동작하는 사용자가 프로그래밍할 수 있는 루틴을 ..
Spark multi process error in macOS
2023. 9. 27. 11:26
데이터 엔지니어링/Spark
macos 에서 pyspark 를 통해 디버깅을 하던 도중 다음과 같은 에러가 발생했다. To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 23/09/27 10:36:44 WARN package: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.sql.debug.maxToStringFields'. objc[7304]: +[__NSCFConstantString initialize] may have been in progress in..
Spark JDBC Data Source Option
2023. 9. 26. 12:32
데이터 엔지니어링/Spark
spark 를 통해 JDBC 를 통해 데이터베이스의 테이블을 불러올 때 사용하는 옵션에 대해서 정리해보려고 한다. Spark JDBC To Other Databases 해당 내용은 야래의 spark 공식 문서에서 확인할 수 있다. https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html JDBC To Other Databases - Spark 3.5.0 Documentation spark.apache.org 문서를 보면 다음과 같이 설명이 되어있다. Spark SQL 은 JDBC 를 사용해서 다른 데이터베이스들로부터 데이터를 읽을 수 있는 data source 를 포함하고 있다. 이 기능은 JdbcRDD 를 사용하는 것보다 선호된다. 그 이유는 D..
spark config 리스트 정리 (spark.config.set)
2023. 9. 17. 19:44
데이터 엔지니어링/Spark
spark config 에 대해서 정리하려고 한다. 사용해본 config 설정이 많지는 않지만 여러 config 들에 대해서 계속해서 정리해나가야겠다. spark config setting 방법 # spark session 생성 spark = SparkSession.builder.appName("test").getOrCreate() # config 예시 spark.conf.set("spark.sql.inMemoryColumnarStorage.compressed", True) spark.conf.set("spark.sql.adaptive.enabled", True) spark.conf.set("spark.sql.adaptive.coalescePartitions.enabled", True) spark.co..
MacOS m1 openjdk 설치하기
2023. 9. 17. 19:30
프로그래밍 언어/Java
맥북 m1 에서 openjdk 를 설치하는 과정에 대해서 정리해보려고 한다. brew openjdk 버전 확인 brew 를 통해 설치할 수 있는 openjdk 버전 확인하기 $ brew search openjdk ==> Formulae openjdk openjdk@11 openjdk@17 openjdk@8 openj9 openvdb brew 를 통해 openjdk 설치하기 나는 openjdk 17 버전을 설치하려고 한다. $ brew install openjdk@17 java version 확인하기 openjdk 를 설치하고나서 java 의 버전을 확인하려는데 다음과 같이 메시지가 나왔다. $ /usr/libexec/java_home -V The operation couldn’t be completed...
LLM(Large Language Model) 이해하기
2023. 9. 17. 19:03
AI/Model
먼저 LM(Language Model, 언어 모델) 에 대해서 이해하고 넘어가려고 한다. 언어 모델이란 인간의 언어를 이해하고 생성하도록 훈련된 일종의 인공지능 모델이라고 한다. 주어진 단어 내에서 패턴이나 구조, 관계를 학습하여 텍스트 번역과 같은 좁은 AI 작업에서 주로 활용되었다고 한다. LLM(Large Language Model) 이란 그럼 LLM(Large Language Model) 이란 무엇일까? 해석 그대로 대량의 언어 모델이라고 볼 수 있다. LLM 은 딥러닝 알고리즘과 통계 모델링을 통해 자연어 처리 작업(Natural Language Processing, NLP)을 수행하는 데 사용한다고 한다. 이 모델은 사전에 대규모의 언어 데이터를 학습하여 문장 구조나 문법, 의미 등을 이해하고..
Git cherry pick 이란
2023. 9. 10. 21:28
버전관리/git & github
git 을 사용하면서 cherry pick 이라는 것이 있다고 해서 정리해보려고 한다. git cherry pick 이란 git 에서 cherry-picking 이란 하나의 브랜치에서 단일 커밋을 가져와서 다른 브랜치에 추가하는 것을 말한다. 단일 커밋에 포함된 변경 사항이 필요하지만 해당 브랜치의 전체 내용을 다른 브랜치로 가져올 수 없거나 가져오고 싶지 않은 경우 내가 원하는 커밋을 가져올 수 있게 골라야 한다. 이 때 cherry-picking 을 통해 원하는 커밋을 가져와 다른 브랜치에 추가할 수 있도록 해준다. 예를 들어, 위의 사진과 같이 main 브랜치와 develop 브랜치가 있고 순서대로 커밋이 된다고 할 때 develop 브랜치의 B 커밋을 가져와 main 브랜치에 E 커밋 다음에 추가..
Gitflow 브랜치 전략 이해하기
2023. 9. 10. 20:29
버전관리/git & github
많은 IT 기업에서 gitflow 를 사용해 버전 관리를 하고 있는 것으로 알고 있다. 나도 실제로 개발 업무을 진행하면서 Gitflow 를 통해 버전관리를 하고 있다. 하지만 Gitflow 가 무엇이고 어떻게 사용하고 어떤 전략을 통해 버전 관리를 하도록 권장하고 있는지 알아보기 위해 정리해보았다. 그럼 Gitflow 에는 어떤 브랜치들로 구성되어있고 어떤 전략으로 사용되는지 알아보자. Gitflow 브랜치 구성 GitFlow 는 다음과 같은 브랜치들로 구성되어있다. main branch (기존 master 에서 main 으로 변경) develop branch feature branch release branch hotfix branch 그럼 각 브랜치들을 어떤 전략으로 사용해야하는지에 대해서 알아보자..
AWS EC2 인스턴스 유형 t2 와 t3 비교하기 (t2 vs t3)
2023. 9. 3. 19:57
Cloud/AWS
AWS 프리티어를 사용하게 되면 기본적으로 EC2 인스턴스의 t2 유형을 사용할 수 있다.프리티어가 계속해서 적용되어있다면 t2 를 사용하는 것이 효율적이라고 생각되지만 1년이 지나고 프리티어가 적용되지 않는다면 t2 를 계속해서 사용하는 것이 효율적인가에 대한 고민이 들거라고 생각한다.또한 프리티어에서 기본적으로 제공해주는 ec2 t2.micro 인스턴스 유형의 경우 CPU 1 core, RAM 1GB 를 제공해주고 있다.그렇기에 t2 인스턴스 유형으로 만들어진 ec2 에서 작업을 수행할 때 리소스 부족으로 문제가 발생할 수 있다. 그럼 t2 를 사용하기에는 리소스가 부족하고 조금 더 큰 리소스를 가지는 인스턴스 유형으로 변경하고자 할 때 많은 고민이 생긴다.당연히 비용에 대한 고민이다. 리소스를 증..
서버 사이드 렌더링(Server Side Rendering, SSR) 이란
2023. 8. 20. 19:47
개발/개념정리
개발을 진행하면서 서버 사이드 렌더링에 대한 이해가 필요해 정리해보았다. 먼저 렌더링에 대한 간단한 이해를 시작으로 정리해보려고 한다. 렌더링이란 서버로부터 받은 파일을 클라이언트인 브라우저에게 보내는 과정이다. 간단하게 말해 서버에서 HTML 파일과 CSS 파일을 클라이언트에서 받아 파싱하게 되고 렌더링 과정을 통해 브라우저에 화면을 보여주게 된다. 그럼 이러한 렌더링 과정을 서버 측면에서 해줄 것이냐, 클라이언트 측면에서 해줄 것인가에 대한 부분에 있어 서버 사이드 렌더링과 클라이언트 사이드 렌더링 방식으로 사용되고 있다. 나는 이번에 서버 사이드 렌더링 방식 관점에서 정리해보려고 한다. 서버 사이드 렌더링 (Server Side Rendering) 이란 서버 사이드 렌더링이란 서버에서 페이지를 만들..