목록분류 전체보기 (170)
imhamburger 님의 블로그
애플리케이션API를 써서 스파크 위에서 돌아가는 사용자 프로그램. 드라이버 프로그램과 클러스터의 실행기로 이루어진다. SparkSession스파크 코어 기능들과 상호 작용할 수 있는 진입점 제공. 그 API로 프로그래밍을 할 수 있게 해주는 객체.스파크 셸에서 스파크 드라이버는 기본적으로 SparkSession을 제공하지만 스파크 애플리케이션에서는 사용자가 SparkSession 객체를 생성해서 써야한다. 잡(job)스파크 액션(save(), collect())에 대한 응답으로 생성되는 여러 태스크로 이루어진 병렬 연산 스테이지(stage)각 잡은 스테이지라 불리는 서로 의존성을 가지는 다수의 태스크 모음으로 나뉜다. 태스크(task)스파크 익그제큐터로 보내지는 작업 실행의 가장 기본적인 단위 ..
CONCAT과 GROUP_CONCAT은 둘다 문자열을 합칠 때 사용한다.그렇지만 사용 목적과 동작 단위가 근본적으로 다르다.단순 비교 대상이라기보다는 “행 단위 vs 집계 단위” 함수로 구분해야 한다. CONCAT: 행 단위 문자열 결합SELECT CONCAT(first_name, ' ', last_name) AS full_nameFROM users;first_namelast_namefull_nameBurgerHamBurger Ham GROUP_CONCAT: 여러 행을 하나의 문자열로 집계SELECT user_id, GROUP_CONCAT(product_name) AS productsFROM ordersGROUP BY user_id;user_idproducts1Apple,Banana,Orange 근..
OpenAI 모듈을 설치한 후 코드를 실행시키는데 다음과 같은 에러가 발생했다.pydantic.v1.error_wrappers.ValidationError:1 validation error for ChatOpenAI __root__ Client.__init__() got an unexpected keyword argument 'proxies' (type=type_error) OpenAI 관련 모듈이랑 pydantic 도 다 설치하였는데 말이지...심지어 집에 있는 노트북에서는 해당 에러가 안떴었는데 다른 노트북으로 하니까 뜨네.. 구글링 해본 결과, 문제의 원인은 httpx가 0.28 버전으로 업데이트되면서 발생한거라고 한다.이 버전에서 더 이상 사용되지 않던 proxies 키워드가 제거되었다.OpenA..
돌아보면 2025년은 잘 해냈다기보다는 끝까지 버텼다는 표현이 더 어울리는 해였다.그리고 그 과정에서, 내가 어떤 사람인지 조금은 더 알게 됐다. 1월에 데이터 엔지니어링 부트캠프가 끝나고 3월에 A회사 데이터 엔지니어로 일을 시작했다.이름만 들으면 그럴듯하지만,실제로는 매일 “이게 맞나?”를 혼잣말처럼 반복했다.데이터팀에 혼자 있다는 사실은 생각보다 크게 다가왔다.누군가에게 물어볼 수 없다는 건,모든 선택에 이유를 붙여야 한다는 뜻이었으니까. 데이터를 쌓고, 흐르게 만들고, 사람들이 쓰게 하는 일은생각보다 조용하고, 생각보다 외로웠다.눈에 띄는 성과가 바로 보이지 않을 때도 많았다.그래도 멈출 수는 없었다.누군가는 이 바닥을 다져야 했으니까.가끔은 다른 회사의 잘 정리된 구조들을 보면서 괜히 작아지기도..
문제https://leetcode.com/problems/analyze-subscription-conversion/description/ 구독형 서비스에서 사용자 행동 패턴을 분석하려고 한다.해당 서비스는 7일간의 무료 체험 기간을 제공하며, 이후 사용자는 유료 구독으로 전환하거나 취소할 수 있다.다음 요구사항을 만족하는 해결책을 작성하시오.무료 체험에서 유료 구독으로 전환한 사용자를 찾는다.각 사용자의 무료 체험 기간 동안의 일 평균 활동 시간을 계산한다.소수점 둘째 자리까지 반올림한다.각 사용자의 유료 구독 기간 동안의 일 평균 활동 시간을 계산한다.소수점 둘째 자리까지 반올림한다.결과 테이블은 user_id 기준 오름차순으로 정렬하여 반환한다. 문제풀이SELECT *FROM (SELECT user_..
문제https://leetcode.com/problems/seasonal-sales-analysis/description/ 각 계절별로 가장 인기 있는 상품 카테고리를 찾기 계절은 다음과 같이 정의겨울(Winter): 12월, 1월, 2월봄(Spring): 3월, 4월, 5월여름(Summer): 6월, 7월, 8월가을(Fall): 9월, 10월, 11월카테고리의 인기도는 해당 계절 동안 판매된 총 수량(quantity) 을 기준으로 결정.만약 판매 수량이 동일한 카테고리가 여러 개라면, 총 매출액(수량 × 가격) 이 가장 높은 카테고리를 선택.결과 테이블은 계절을 기준으로 오름차순 정렬하여 반환. 문제풀이WITH t1 AS (SELECT *, ROW_NUMBER() OVER(PARTITIO..
에러메세지Error: An error occurred (ValidationException) when calling the BatchWriteItem operation:The provided key element does not match the schema 원인The provided key element does not match the schema→ 즉, 넣으려는 아이템의 기본 키(primary key) 가 DynamoDB 테이블 스키마의 키 정의와 다르다는 뜻.나는 PK만 맞추면 될 줄 알았는데 Sort Key가 지정되어있다면 그것도 맞춰줘야 한다고 한다.DynamoDB 테이블에 Primary Key, Sort Key 두 개 다 명시되어 있었다.- (1) Partition key만 있음 → ..
문제주어진 택시 요청(trip) 데이터에서 취소율(Cancellation Rate)을 계산하려고 한다. 1. 취소율 정의취소율은 다음과 같이 계산한다. 취소된 요청 수:해당 날짜에 발생한 요청 중 요청 상태(status)가 cancelled_by_client 또는 cancelled_by_driver 이고 클라이언트와 드라이버 모두 차단(banned)되지 않은 요청 수전체 요청 수:해당 날짜에 발생한 요청 중 클라이언트와 드라이버 모두 차단되지 않은 전체 요청 수 2. 조건클라이언트와 드라이버 모두 unbanned (banned = 'No') 인 요청만 고려날짜 범위는 2013-10-01 ~ 2013-10-03해당 날짜에 최소 1건 이상의 요청이 있는 날만 결과에 포함취소율은 소수점 둘째 자리까지 반올림문..
문제요약 Weather Observation Station 20 | HackerRankQuery the median of Northern Latitudes in STATION and round to 4 decimal places.www.hackerrank.comLAT_N의 중앙값 구하기소수점 넷째자리까지 반올림하기 문제풀이나는 Mysql이 더 익숙해서 Mysql로 풀었다.Mysql은 Oracle에서 지원하는 median 함수가 지원되지 않아 살짝 더? 복잡하게 풀어야 한다.SELECT ROUND(LAT_N,4)FROM(SELECT LAT_N, PERCENT_RANK() OVER (ORDER BY LAT_N) tmp FROM STATION)WHERE tmp = 0.5; PERCENT_RANK()는 ..
오랜만에 sql 코테를 풀어보았다. 해커랭크는 영어라 한국어로 번역해서 풀어야 한다. Binary Tree Nodes | HackerRankWrite a query to find the node type of BST ordered by the value of the node.www.hackerrank.com 문제요약입력은 테이블 BST(N, P) — 각 행이 트리의 노드 N 과 그 부모 P각 노드 N 에 대해 그 노드가 트리에서 Root, Inner, 또는 Leaf 중 어느 타입인지 판별Root: 부모가 없는 노드 (즉, P IS NULL) Inner: 부모가 있고, 동시에 자식이 있는 노드 (즉, 다른 노드가 자신의 자식으로 이 노드를 부모로 참조)Leaf: 자식이 없는 노드 (즉, 아무도 이 노드를..