반응형
들어가며
데이터 포맷은 참... 다양합니다. json부터 시작해서 csv, protocol buffer, text 등등.. 이번에는 protocol buffer를 json의 형태로 변환하는 방법에 대해서 알아보려고 합니다. 왜 필요하느냐.. 저 같은 경우에는 spark에서 데이터를 처리하기 위해서 변환을 했습니다. 사실 스파크에서는 protocol buffer를 지원하기 때문에 그대로 읽으면 되지만, tweeter에서 제공하는 elephant-bird 라이브러리를 함께 사용해야 하는 복잡함이 있다. 그것보다 아직 protocol buffer를 읽어서 spark에서 처리한 내용이 거의 없었다. 내가 찾아봤을때는 elephant-bird와 scala를 이용해서 읽어보려고 했으나 많은 dependency 등과 그 외의 문제가 엄청 많았다. 많은 커뮤니티에서 다루고 있는 문제라면 쉽게 해결을 할 수 있겠지만, 그래서 일단 숙제로 남겨두고 급한대로 protocol buffer를 json으로 변환한 뒤에 스파크에서 처리하자라는 생각으로 작전을 변경했다. 일단 처리는 해야하니까 말이다. 다음에는 꼭 해결하리.
라이브러리 설치
protobuf를 dict의 형태로 변환을 해주는 라이브러리가 존재해서 사용을 하였다. [바로가기]
$ sudo pip install protobuf-to-dict
소스코드
소스코드는 총 3단계로 이루어져 있습니다.
- 첫번째는 내가 정의한 protocol buffer의 파일을 읽기
- 읽어드린 파일을 protobuf_to_dict을 이용해 dict의 형태로 변환을 하고, dict의 데이터를 json으로 변경
- json_string의 값을 파일에 저장
반응형
'Programming > Python' 카테고리의 다른 글
[Python] Singleton Pattern을 이용한 Logger 만들기 (3) | 2016.08.11 |
---|---|
[Python] 파이썬 CSV파일 입/출력 (FileI/O) (4) | 2016.08.11 |
[Python] Enum 사용하는 방법 및 예제코드 (0) | 2016.05.31 |
[Python] collections를 이용한 Dictionary 정렬하기 (0) | 2016.05.25 |
[Python] json 모듈 사용하기 :: String을 Dict으로 변환 (0) | 2016.05.25 |