2 回答
TA贡献1846条经验 获得超7个赞
在 python 中使用以下代码来获取您正在寻找的数据。
import boto3
query = "SELECT * from table_name"
s3_resource = boto3.resource("s3")
s3_client = boto3.client('s3')
DATABASE = 'database_name'
output='s3://output-bucket/output-folder'
athena_client = boto3.client('athena')
# Execution
response = athena_client.start_query_execution(
QueryString=query,
QueryExecutionContext={
'Database': DATABASE
},
ResultConfiguration={
'OutputLocation': output,
}
)
queryId = response['QueryExecutionId']
TA贡献1847条经验 获得超11个赞
我找到了一种使用 awswrangler 直接从 Athena 查询数据到本地计算机上的 pandas 数据帧的方法。这不需要我们提供 S3 上的输出位置。
profile_name = 'Dev-AWS'
REGION = 'us-east-1'
#this automatically retrieves credentials from your aws credentials file after you run aws configure on command-line
ACCESS_KEY_ID, SECRET_ACCESS_KEY,SESSION_TOKEN = get_profile_credentials(profile_name)
session = boto3.session.Session(
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=SECRET_ACCESS_KEY,
aws_session_token=SESSION_TOKEN
)
wr.athena.read_sql_query("select * from table_name", database="db_name", boto3_session=session)
或者,如果您不想查询 Athena,但想读取整个粘合表,则可以使用:
my_df = wr.athena.read_sql_table(table= 'my_table', database= 'my_db', boto3_session=session)
添加回答
举报