session 생성
curl -X POST -i -k -u '<id>:<password>' 'https://<host>:<port>/gateway/default/livy/v1/sessions' -H "Content-Type: application/json" -d '{"kind": "pyspark"}'
HTTP/1.1 201 Created
....
{"id":14619,"appId":null,"owner":null,"proxyUser":"<id>","state":"starting","kind":"pyspark","appInfo":{"driverLogUrl":null,"sparkUiUrl":null},"log":["stdout: ","\nstderr: ","\nYARN Diagnostics: "]}
session 상태 확인
GET /sesstions/<session_id>/state
curl -k -u '<id>:<password>' 'https://<host>:<port>/gateway/default/livy/v1/sessions/14619/state'
{"id":14619,"state":"idle"}
코드 제출
POST sessions/<session_id>/statements
- 여기선 단순하게 body 의 code 에 python code 전달
curl -X POST -k -u '<id>:<password>' 'https://<host>:<port>/gateway/default/livy/v1/sessions/14619/statements' \
-H "Content-Type: application/json" \
-d '{"code": "print(\"Hello from Livy\")"}' \
{"id":0,"code":"print(\"Hello from Livy\")","state":"waiting","output":null,"progress":0.0}
statements 조회하여 실행 상태, 결과 확인
GET sessions/<session_id>/statements/<statement_id>
curl -k -u '<id>:<password>' 'https://<host>:<port>/gateway/default/livy/v1/sessions/14619/statements/0'
{"id":0,"code":"print(\"Hello from Livy\")","state":"available","output":{"status":"ok","execution_count":0,"data":{"text/plain":"Hello from Livy"}},"progress":1.0}