我编写了一个脚本,该脚本将在 Athena 上执行查询并将结果文件加载到指定的 aws boto S3 位置。
import boto3
def run_query(query, database, s3_output):
client = boto3.client('athena', region_name='my-region')
response = client.start_query_execution(
QueryString=query,
QueryExecutionContext={
'Database': database
},
ResultConfiguration={
'OutputLocation': s3_output,
}
)
print('Execution ID: ' + response['QueryExecutionId'])
return response
query = """select ..."""
database = 'db_name'
path_template = 's3://bucket_name/path/version={}'
current_time = str(datetime.datetime.now())
result = run_query(query, database, path_template.format(current_time))
它确实有效,但问题是我有一个 csv 文件作为指定位置。但我不想要一个 csv 文件,我想要一个镶木地板文件。
我设法获得我想要的唯一方法是下载文件,用熊猫将其转换为镶木地板以重新上传。很烦人,我不能在不获取文件的情况下直接转换。
任何人有另一种方式建议?我不想使用 CTAS。
慕婉清6462132
慕田峪4524236
相关分类