목록일단써 (16)
공부기록
https://spark.apache.org/docs/latest/api/python/user_guide/python_packaging.html?highlight=submit%20python Python Package Management — PySpark 3.4.0 documentation Python Package Management When you want to run your PySpark application on a cluster such as YARN, Kubernetes, Mesos, etc., you need to make sure that your code and all used libraries are available on the executors. As an example, let’..
develop 브랜치에 feature 브랜치를 머지한 뒤 dev 환경에 배포한 뒤 오류가 발생할 수 있다 (그러면 안된다 사실). dev 환경에서의 장애가 길어질 경우 내 인생이 난감해 질 수 있기 때문에 pr을 revert해서 고치기 이전 코드로 롤백할 수 있다. 이 상태에서 feature 브렌치에 오류를 수정하고 develop 브랜치에 pr을 올리면 방금 오류를 수정한 이후의 커밋만 pr에 반영되는 것을 볼 수 있다. 이럴 땐 오또케를 외치지 말고, develop 브렌치에서 revert한 수정사항을 다시 revert하여 오류가 난 커밋으로 되돌리자. 그러고 pr을 올리면 conflict도 안나고, 오류 이전의 변경사항과 오류를 수정한 사항을 모두 develop에 반영할 수 있다. 참고로 pr reve..
나는 먼저 helm 차트로 mysql을 띄우고 인그레스로 연결하면 알아서 잘 되것거니 생각했다. 도메인까지 연결해주고 MySQL WorkBench로 테스트를 해봤지만 되지 않음... 안되는 이유는 생각보다 간단했다. Ingress는 http, https 연결을 지원하는데 MySQL connection은 TCP/IP 단계에서 이뤄지고 있었기 때문... 때문에 인그레스 컨트롤러 로그를 봐도 WorkBench로 찍은 테스트 로그는 전혀 남지 않았다... (혹시 해서 브라우저로 테스트한 것은 들어오고 있었고, 이 때문에 TCP 요청을 받지 않는다고 판단함) 구글에 ingress tcp connection 이라고 치면 다음의 문서가 나온다. https://kubernetes.github.io/ingress-ngi..
Throwable 하면 Invoke Failure 에러 나서 Exception Handler를 못탈 수 있다. 정확한 이유는 공부해보자...
${CONSOLE_LOG_PATTERN} ${CONSOLE_LOG_CHARSET} 로거들은 자신에게 요청하는 코드의 레벨이 맞을 때 로그를 뱉는다. 이 글을 쓰는 이유는 root의 레벨에 따라 logger가 필터링 되는줄 알아서 쓴다.... 내가 경험한 문제는 jdbc.sqltiming을 root가 debug 레벨일 때에 출력하고 싶었던 것이었다. 하지만 애초에 내가 logback의 요청 수용 방식, root 와 logger의 상속관계가 무엇인지 몰라서 벌어진 일이었다. 일단 logback의 logger들은 요청을 받는다. ALogger.debug() 뭐 이런 식으로 요청을 받는데 이 때 ALogger의 레벨이 debug 이하여야 수용할 수 있다는 것이다. ALogger의 레벨이 만약 info 이상이라면..
select format('%03d', 8); 과 같은 쿼리가 있으면 df = pandas.read_sql(query, engine) 했을 때, 오류가 난다. TypeError: %d format: a number is required, not dict % 문자가 escaping이 안되고 인자로 받아져서 일어나는 문제인 것 같다. 이럴 땐 먼저 sqlalchemy의 text를 사용해주면 된다. from sqlalchemy import text ... df = pandas.read_sql(text(query), engine) 그럼 잘 된다.
티켓 판매 어플리케이션 구현하기 티켓 판매 어플리케이션을 구현하기 위한 다음과 같은 코드들이 있다. # 영화관 초대장 클래스이다. 초대장이 있으면 티켓이 무료이다. public class Invitation{ private LocalDateTime when; } # 티켓 클래스이다. public class Ticket{ private Long fee; public Long getFee(){ return fee; } } # 돈, 초대장, 티켓을 담는 가방이다. public class Bag{ private Long amount; private Invitation invitation; private Ticket ticket; public Bag(long amount){ this(null, amount); }..