[프로젝트] Catch Me My Capital - 합리적인 투자 의사결정을 위한 금융 데이터 파이프라인 및 백테스팅 도구 (프로젝트 소개 편)
·
Minding's Programming/Knowledge
Github: https://github.com/DE-ta-e-il/catch-me-my-capital GitHub - DE-ta-e-il/catch-me-my-capital: A data engineering project focused on collecting and managing financial data with a visA data engineering project focused on collecting and managing financial data with a vision for backtesting and analysis. - DE-ta-e-il/catch-me-my-capitalgithub.com 프로젝트 개요프로젝트 배경"우리는 정말 원숭이보다 투자를 더 잘하고 있을까요?"라는 질..
[Spark/Hive] Spark에서 Hive 메타 스토어 사용하기
·
Minding's Programming/Spark
Spark의 DB와 테이블SparkSQL을 통해 임시 테이블을 만들어 SQL 조작이 가능하지만, Spark는 기본적으로 인메모리 기반이기 때문에, 세션이 종료되면 카탈로그라고 불리는 테이블과 뷰가 사라진다. 이 문제로 인해 Spark에서는 계속해서 사용해야 하는 테이블을 그때 그때 불러와줘야 하는 문제가 발생한다. Hive 메타스토어이를 해결하기 위해 Disk에 저장이 가능한 Hive와 호환이 되는 Persistent라는 카탈로그를 제공한다. 각 테이블들은 DB라고 부르는 폴더와 같은 구조로 관리된다. 위와 같이 스토리지 기반의 테이블은 기본적으로 HDFS오 Parquet 포맷을 사용하며, Hive와 호환되는 메타스토어를 사용한다. 여기엔 두 종류의 테이블이 존재한다.Managed Table: Spark..
[Spark/pySpark] SparkSQL UDF(User Define Function)
·
Minding's Programming/Spark
UDF?UDF(User Define Function)는 SQL(Spark에서는 DataFrame까지)에서 적용할 수 있는 사용자 정의 함수다. 일반적으로 SQL에서 Scalar함수(UPPER, LOWER 등), Aggregation함수(SUM, MIN, AVG 등)를 제공하고 있지만, 상황에 따라서 특정 계산식이 반복해서 필요할 때가 있다. 그럴 때 유용하게 사용할 수 있는 것이 UDF이다. pySpark에서 UDF를 사용해보기UDF는 크게 두 가지의 종류가 있다.Transformation 함수UDAF(User Define Aggregation Function): Aggregation 환경에서 사용하는 함수(Pyspark에서는 미지원)UDAF의 경우는 스칼라 또는 자바로 구현해야한다. 그렇다면, 다른 함..