더북(TheBook)

5.3.2.1 스파크 SQL 셸 사용

스파크는 스파크 셸 외에도 별도의 SQL 셸을 제공한다. 스파크 SQL 셸은 spark-sql 명령으로 실행하며, spark-shellspark-submit의 인수들을 똑같이 전달할 수 있다(자세한 내용은 책의 10장과 11장을 참고하자). 이외에도 spark-sql 명령에 SQL 셸 고유의 인수를 전달할 수 있다. spark-sql 명령을 실행할 때 인수를 전달하지 않으면 SQL 셸을 로컬 모드로 시작한다. SQL 셸 프롬프트에는 이전 절의 sql 함수 예제와 동일하게 SQL 명령을 입력할 수 있다.

간단한 예제로 SQL 셸을 실습해 보자. 스파크 셸이 Derby 메타스토어에 잠금(lock)을 걸기 때문에 실행 중인 스파크 셸이 있다면 종료해야 한다. 스파크 SQL 셸에 다음 명령을 입력해 앞서 영구 테이블로 저장한 posts 테이블에서 가장 최근에 게시된 질문 세 개의 제목을 출력해 보자. (지면 관계상 너무 긴 제목은 중략했다. 스파크 버전 2.0.0에서 실행하면 AlreadyExistsException 예외가 발생하지만 실행에는 문제가 없다.)

spark-sql> select substring(title, 0, 70) from posts where
  postTypeId = 1 order by creationDate desc limit 3;
Verbo impersonale che regge verbo impersonale: costruzione implicita?
Perché si chiama "saracinesca" la chiusura metallica scorren
Perché a volte si scrive l'accento acuto sulla "i" o sulla &
Time taken: 0.375 seconds, Fetched 3 row(s)

 

Note

스파크 SQL 셸에서는 SQL 표현식 마지막에 세미콜론(;)을 붙여야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.