我試圖使用pyathenajdbc.connect()連接到Athena。我通過多因素身份驗證設置了AWS憑據。當我沒有在連接字符串中包含AWS Token時,出現以下錯誤。未能從Python 2.7查詢AWS Athena時,在通過AWS會話令牌傳遞給pyathenajdbc.connect()
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
EROR: pyathenajdbc.error.DatabaseError: The security token included in the request is invalid. (Service: AmazonAthena; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: 0d488c0b-1eed-11e7-bad8-711e54af6b73)
當我包括AWS令牌在連接字符串我獲得以下錯誤 - >
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, token=AWS_SESSION_TOKEN, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
ERROR: pyathenajdbc.error.DatabaseError: The security token included in the request is invalid. (Service: AmazonAthena; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: 91751051-1eed-11e7-8347-153dfe3d84a6)
有誰知道這裏有什麼問題?
這是我的整個代碼。
from pyathenajdbc import connect
from pyathenajdbc.util import as_pandas
from boto3 import Session
import jpype
jvm_path = jpype.getDefaultJVMPath()
_current_credentials = Session().get_credentials()
AWS_KEY_ID = _current_credentials.access_key
AWS_SECRET = _current_credentials.secret_key
AWS_SESSION_TOKEN = _current_credentials.token
REGION = "us-east-2"
#athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
athena_conn = connect(access_key=AWS_KEY_ID, secret_key=AWS_SECRET, token=AWS_SESSION_TOKEN, s3_staging_dir='s3://abc-pqr-xyz/processed/athena-outputs/',region_name=REGION)
cursor = athena_conn.cursor();
query = 'SELECT * FROM xyz.ABC limit 1;'
cursor.execute(query)
df = as_pandas(cursor)
print(df)
您好,感謝您的答覆。這裏是輸出-'jdbc:awsathena:// athena。{region} .amazonaws.com:443/hive/{schema}/ com.amazonaws.athena.jdbc.AthenaDriver https://s3.amazonaws.com /athena-downloads/drivers/AthenaJDBC41-1.0.0.jar AthenaJDBC41-1.0.0.jar' – Guddi
另外,確認密鑰有效 – Guddi
我明白了。我認爲這與您在AWS Athena上的權限有關。請驗證您是否可以使用相同憑證訪問雅典娜控制檯 –