我正在使用 AWS Athena 从 S3 查询原始数据。由于 Athena 将查询输出写入 S3 输出桶,我曾经这样做过:
df = pd.read_csv(OutputLocation)
但这似乎是一种昂贵的方式。最近我注意到 get_query_results
方法 boto3
返回结果的复杂字典。
client = boto3.client('athena')
response = client.get_query_results(
QueryExecutionId=res['QueryExecutionId']
)
我面临两个主要问题:
- 如何将
get_query_results
的结果格式化为pandas
数据框? get_query_results
只返回 1000 行。我怎样才能用它来获得两百万行?
原文由 Niv Cohen 发布,翻译遵循 CC BY-SA 4.0 许可协议
get_query_results 只返回 1000 行。我如何使用它将 200 万行放入 Pandas 数据框中?
如果您尝试添加:
您将收到下一个错误:
如果您直接从存储桶 s3 获取文件(在下一个示例中为 Pandas Dataframe),您可以获得数百万行:
self.filename 可以是:
因为 Athena 将文件命名为 QueryExecutionId。我会写给你我所有的代码,这些代码接受查询并返回一个包含所有行和列的数据框。