Pri*_*amJ 4 python database pandas amazon-athena
我已经使用 pyathena 运行了一个查询,并创建了一个 pandas 数据框。有没有办法将 pandas 数据框直接写入 AWS athena 数据库?就像 MYSQL 数据库的 data.to_sql 一样。
下面分享一个数据帧代码示例供参考,需要写入AWS athena数据库:
data=pd.DataFrame({'id':[1,2,3,4,5,6],'name':['a','b','c','d','e','f'],'score':[11,22,33,44,55,66]})
Run Code Online (Sandbox Code Playgroud)
实现此目标的另一种现代方法(截至 2020 年 2 月)是使用aws-data-wrangler库。它可以自动执行数据处理中的许多常规(有时甚至是烦人的)任务。
结合问题中的案例,代码如下所示:
import pandas as pd
import awswrangler as wr
data=pd.DataFrame({'id':[1,2,3,4,5,6],'name':['a','b','c','d','e','f'],'score':[11,22,33,44,55,66]})
# Typical Pandas, Numpy or Pyarrow transformation HERE!
wr.pandas.to_parquet( # Storing the data and metadata to Data Lake
dataframe=data,
database="database",
path="s3://your-s3-bucket/path/to/new/table",
partition_cols=["name"],
)
Run Code Online (Sandbox Code Playgroud)
这非常有用,因为aws-data-wrangler知道从路径解析表名称(但您可以在参数中提供表名称)并根据数据帧在 Glue 目录中定义正确的类型。
它还有助于使用 Athena 直接向 pandas 数据框查询数据:
df = wr.pandas.read_table(database="dataase", table="table")
Run Code Online (Sandbox Code Playgroud)
整个过程将变得快捷、方便。
| 归档时间: |
|
| 查看次数: |
9964 次 |
| 最近记录: |