2017-03-15 2 views
0

제공된 JDBC 드라이버를 사용하여 Athena를 쿼리하기 위해 PyAthenaJDBC라는 Python 모듈을 사용하고 있습니다. 여기 링크입니다 : https://pypi.python.org/pypi/PyAthenaJDBC/HIVE PyAthenaJDBC의 인수 (AWS athena)

연결이 쿼리뿐만 아니라 (쇼 데이터베이스, 쇼 테이블 선택을 ...) 작업, 성공적으로 설립 그러나, 나는 하이브 인수 등을 사용하여 사용자 정의 테이블을 정의하려고 할 때마다 라인 1 :

class PyAthenaLoader(): 
    def connecti(self): 
     self.conn = pyathenajdbc.connect(
             access_key=access_key_id, 
             secret_key=secret_key_id, 
             region_name = "us-west-2", 
             s3_staging_dir="s3://aws-athena-query-results-332333536009-us-west-2") 
    def create(self): 
     try: 
      with self.conn.cursor() as cursor: 
       cursor.execute(
           """CREATE EXTERNAL TABLE IF NOT EXISTS sales4 (
           Day_ID int, 
           Product_Id string, 
           Store_Id string, 
           Sales_Units int, 
           Sales_Cost float, 
           Currency string 
          ) 
           ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
           WITH SERDEPROPERTIES (
           'serialization.format' = '|', 
           'field.delim' = '|', 
           'collection.delimm = 'undefined', 
           'mapkey.delim' = 'undefined' 
          ) LOCATION 's3://athena/'; 
           """) 

오류 : 8 : 그것은 더 이상 작동하지 않습니다 '행 형식의 SERDE ..'로, 여기 내 코드 입력에서 어떤 대안이 (서비스 '외부를 만들 수 없다'AmazonAthena; 상태 코드 : 400, 오류 코드 : InvalidRequestE xception; 요청 ID : 0cca6f3e-fe9e-11e6-be4f-a3b28f284a77)

PS : 동일한 쿼리 콘솔 관리에서 잘 작동합니다! 도움이 되었습니까?

답변

1

쿼리가 형식이 잘못되었습니다.

그것은이 라인 때문이다 : 그것은 delimm 후 가까운 따옴표가 누락

'collection.delimm = 'undefined', 

.

관련 문제