2017-12-14 30 views
0

파이썬의 impala.dbapi 연결을 사용할 때 실행 당 하나의 명령 만 실행할 수 있습니다. 파이썬 2.7을 사용하고 있습니다.Python을 사용하여 impala에서 공통 테이블 식을 사용할 수 있습니까?

두 개의 공통 테이블 표현식을 작성한 후 결합하려고합니다. 그러나이를 작동시킬 수 없습니다.

Impala를 사용하여 HUE에서 작동하는 것처럼 SQL을 실행하면 실행 당 하나의 명령 만 실행할 수 있기 때문에 실패합니다.

공통 테이블 표현식을 파이썬으로 두 번 실행하여 세 번째 실행에서 두 개의 CTE를 결합하려고하면 "cte ..."를 해결할 수없는 오류가 발생합니다. CTE는 메모리에 남아 있지 않은 것처럼 보입니다. 첫 번째 실행이 완료됩니다. 해결 방법은 CTE 대신 임팔라에 임시 테이블을 만드는 것입니다. 결국 나는 Spark 데이터 프레임을 사용하여 이들을 결합 할 것이지만 Spark API가 임팔라 테이블을 가까운 장래에 읽지 못하게하는 권한 문제가 있습니다.

답변

0

필자가 수행 한 테스트에 따르면 impala.dbapi를 사용하여 Python 2.7에서 공통 테이블 표현식을 사용할 수있는 것으로 보이지 않습니다. 이것은 CTE가 다음 cursor.execute 명령으로 메모리에 남아 있지 않기 때문에 하나의 cursor.execute 인스턴스에서 두 개의 SQL 명령을 실행하면 오류가 반환되기 때문입니다.