스파크로 작업을 위해 짜놓았던 테스트 코드를 돌렸더니, 실행 중인 클래스명과 함께 시간만 무한히 증가하는 화면만 나오는 상태로 끝나지 않았다. 한 번 돌기 시작하면 중간에 쉘에서 취소해도 멈추지 않고 프로세스를 강제로 죽여야 종료가 됐다.
뭔가 설정이 꼬였다고 생각해서 처음에는 메모리 등의 이슈인가 하여 늘려보고 spark session이나 context를 종료했다 실행하는 등 다양한 방법을 해봤지만 결론은 같았다.
알고 보니 원인은 어이없고 당연한 이유였는데...
udf 코드를 변경했는데 원래는 일정 횟수만큼 돌던 코드를 오류가 날 때까지 돌게 수정을 했는데 종료 조건이 명확하지 않아서 무한히 도는 문제였다.
scala를 사용해서 재귀로 짰는데.. 아마 자동으로 꼬리재귀로 메모리가 잘 관리돼서 stack over flow 같은 오류도 발생하지 않았나보다..
'Programming > Tip&Informaion' 카테고리의 다른 글
[실수노트] spark sql 에서 concat 함수 null 처리 (0) | 2024.01.17 |
---|---|
Mac에서 메모리 덤프 및 프로세스 바이너리 확인하기 (0) | 2023.12.16 |
[Go] http request header에서 Host 값 변경하기 (0) | 2023.07.06 |
[Mac] shift - space 한영 변환 (xcode 설치 안 하고) (0) | 2023.06.21 |
[Spark/hdfs] 데이터노드 디스크 확보 (0) | 2023.06.19 |