2018/02 3

spark 로컬 테스트 관련.

난 spark를 hue안에서 코딩하는거로 처음 접해서 아래와 같이 메모장같은 불편한곳에서 코딩을 했다. 일단 바빠서 그냥 저기에 코딩을 하지만, 당연히 인텔리제이같은 ide에 익숙해져서 너무 불편하다. 심지어 '를 하나 빼먹는다거나 해도 틀렸다고 말을 안해준다. 거기에 한번 잘 돌아가는지 테스트하는데 드는 비용이 너무 크다. 프로세스 탭에 가서 로그를 살펴보고 어쩌구... 처음에는 급해서 그냥 저 위에서 짰다. 알고리즘적으로 검증이 필요한 부분은 spark를 다운받아서 pyspark를 실행시킨 후 쉘에서 한줄 한줄.. 실행시켜가며 로직을 확인 후 코드에 넣고 돌려봐서 검증. 하는 식으로 했었는데.. 뭔가 코드는 자꾸 틀리고, 어디가 틀리는지 확인하기도 힘들고 한번 돌리는게 너무 짜증나서 로컬에서 테스트를..

data engineering 2018.02.20

crontab으로 프로그램 돌릴시 주의할점, 자세한 에러 출력법

로컬에서 잘 돌아가는데 crontab 에 올리면 계속 죽는 프로그램이 있었다. try: 1/0 except Exception, e: error = str(e) # ... 에러를 슬랙으로 쏴줌. 이처럼 에러를 처리하고 있는데 저처럼 에러를 처리하면 정확하게 안 나온다. 서버에서 돌리는데 슬랙으로 '[Errno 32] Broken pipe' 만 왔다. 구글링을 해봐도 딱히 결과를 찾을수 없었다... 일단 에러를 정확하게 출력하기 위해 구글링을 더 했고, 아래처럼 수정했다. import sys try: 1/0 except: exc_info = sys.exc_info() error = traceback.format_exc() # ... 에러를 슬랙으로 쏴줌. ide에서 직접 보는것처럼 아주아주 자세한 에러를 문..

파이썬으로 구글 시트 조작.

https://developers.google.com/sheets/api/quickstart/python 를 가져와서 요약했습니다. 동작 방식이나 이런것들이 잘 이해가 가지 않았는데, (처음에는 구글 시트의 문서 소유자가 api를 쓰게해주는 권한을 열고? 파이썬에서 그걸 받아와서 사용하는줄 알았다.) 동작을 간단하게 설명하자면 내가 만든 파이썬 프로그램이 '내 구글 계정의 권한'을 가지고 내가 엑세스할수 있는 구글시트를 들어가서 값을 읽거나 편집하는 방식이다. 설명이 상당히 잘 되어있는데 동작 방식등을 안 적어놔서 잠시 헷갈렸었다. 사용법.0. pip install --upgrade google-api-python-client 설치해줍니다.1. 위 링크의 Step 1대로 해줍니다. 2. Step 1에서 ..