2016-09-19 5 views
1

나는 hadoop과 impala를 처음 사용합니다. impyla을 설치하고 다음 코드를 실행하여 impala에 연결할 수있었습니다. 임팔라 수 있도록 연결임팔라 연결 (sqlalchemy)

cursor = conn.cursor() 
cursor.execute('SELECT * FROM tab_2014_m LIMIT 10') 
df = as_pandas(cursor) 

내가 할 수 사용 SQLAlchemy의를 싶습니다 : 다음 커서를 잡아으로 쿼리를 실행할 수있어

from impala.dbapi import connect 
from impala.util import as_pandas 
conn = connect(host="server.lrd.com",port=21050, database='tcad',auth_mechanism='PLAIN', user="alexcj", use_ssl=True,timeout=20, password="secret1pass") 

:이 LDAP에 의해 연결입니다 좋은 sqlalchemy 함수를 사용하는 것. 내가 그 일을 할 수 있도록하고 싶습니다

engine = create_engine('impala://localhost') 

하지만이 연결 함수 내 전화가 위의이 있기 때문에 할 수 아니에요 : 내가 좋아하는 임 팔 라 드라이버와 함께 SQLAlchemy의 엔진을 만드는 방법을 보여줍니다 그 a test file in imyla source code 발견 더 많은 매개 변수; 성공적인 연결을 위해 sqlalchemy의 create_engine에 전달하는 방법을 모르겠습니다. 아무도이 짓을 한거야? 감사.

+0

당신이 사용할 수있는 ['connect_args']에서 설명했다. params.connect_args)를 사용하여'connect()'에 추가 인수를 지정하십시오. – univerio

답변

1

으로는 http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine (https://github.com/cloudera/impyla/issues/214

import sqlalchemy 
def conn(): 
    return connect(host='some_host', 
         port=21050, 
         database='default', 
         timeout=20, 
         use_ssl=True, 
         ca_cert='some_pem', 
         user=user, password=pwd, 
         auth_mechanism='PLAIN') 

engine = sqlalchemy.create_engine('impala://', creator=conn) 
0
import time 

from sqlalchemy import create_engine, MetaData, Table, select, and_ 


ENGINE = create_engine(
    'impala://{host}:{port}/{database}'.format(
     host=host, # your host 
     port=port, 
     database=database, 
    ) 
) 
METADATA = MetaData(ENGINE) 
TABLES = { 
    'table': Table('table_name', METADATA, autoload=True), 

} 
+0

이 답변은 질문에 답하지 않습니다. 예를 들어 ssl 매개 변수를 포함하는 방법을 보여주지는 않습니다. –