AWS数据池的生产力
pandasglue的Python项目详细描述
反对意见:此项目仅为概念验证目的而创建。该项目的生产就绪版本收到了aws data wrangler的名称(pip install awswrangler)。
请考虑前进到:
潘达斯胶
使用广泛使用的pandas库和aws glue catalog的强大功能创建lite etl的python库。
使用pandasglue,您将能够用一行代码对aws数据池进行读/写操作。PandasGlue具有极简的特性,它的界面只有两个功能:
<表><广告>一旦您的数据被映射到aws glue catalog,许多其他工具(如aws redshift spectrum)都可以访问它。aws athena,aws glue jobs,aws emr(spark,配置单元,prestodb)等。
亚马逊胶水是一种简单、灵活的以及经济高效的etl服务,pandas是一个python库,提供高性能、易用的数据结构和数据分析工具。
此软件包的目标是帮助数据工程师使用经济高效的无服务器计算服务(lambda,glue,为了提供一种将pandas与aws glue集成的简便方法,允许直接加载(用数据追加、覆盖或仅覆盖分区)数据帧(athena)的内容在表(拼花/csv格式)中,在粘贴数据目录中,还执行雅典娜查询(读取函数),直接在Pandas数据框中返回结果。
用例
此软件包建议用于ETL目的,即加载和转换中小型数据集,而无需创建Spark作业,有助于降低基础设施成本。
它可以在lambda函数中使用,也可以在glue脚本中使用。ec2实例或其他基础设施资源。
先决条件
pip install pandas
pip install boto3
pip install pyarrow
安装软件包…
pip install pandasglue
或者您也可以直接下载aws lambda layer的工件。ref="https://github.com/igorborgest/pandasgue/releases" rel="nofollow">发布页面。然后您只需要将其上传到您的AWS帐户。
用法
读取方法:
读取胶水()
在pandas数据框中检索雅典娜查询的结果。
快速示例:
importpandasaspdimportpandasglueaspg#Parameterssql_query="SELECT * FROM table_name LIMIT 20"db_name="DB_NAME"s3_output_bucket="s3://bucket-url/"df=pg.read_glue(sql_query,db_name,s3_output_bucket)print(df)
参数列表:
- 查询:关于雅典娜的SQL语句
- 数据库:数据库名称。
- s3输出:s3输出文件夹的路径(可选)
- 区域:AWS区域的ID,例如:US-WEST-1(可选)
- 键:AWS访问键(可选)
- 密钥:AWS密钥(可选)
- 配置文件名:AWS IAM配置文件(可选)
写入方法:
写入胶水()
将给定的pandas数据框转换为胶水拼花桌。
快速示例:
importpandasaspdimportpandasglueaspg#Parametersdatabase="DB_NAME"table_name="TB_NAME"s3_path="s3://bucket-url/"#Sample DFsource_data={'name':['Sarah','Renata','Erika','Fernanda','Diana'],'city':['Seattle','Sao Paulo','Seattle','Santiago','Lima'],'test_score':[82,52,56,234,254]}df=pd.DataFrame(source_data,columns=['name','city','test_score'])pg.write_glue(df,database,table_name,s3_path,partition_cols=['city'])
参数列表:
- df:包含pandas数据帧的变量
- 数据库:数据库名称。
- 路径:目标S3存储桶的路径
- 表格:表格名称(可选)
- 分区列:要分区的列列表(可选)
- 保留索引:布尔型,如果要保留表上的索引(可选)
- 文件格式:拼花csv(可选)
- 模式:追加覆盖覆盖分区(可选)
- 区域:AWS区域的ID(可选)
- 键:AWS访问键(可选)
- 密钥:AWS密钥(可选)
- 配置文件名:AWS IAM配置文件(可选)
使用
构建- boto3-(aws)python的sdk,它允许python开发人员编写使用类似s3和ec2的amazon服务的软件。
- pyarrow-与python交互操作arrow的python包,允许将文本文件格式转换为拼花文件等功能。
贡献
有关我们的行为准则和向我们提交请求的过程的详细信息,请阅读contribution.md。
作者
另请参见参与本项目的贡献者。
许可证
此项目是根据麻省理工学院的许可证授权的-有关详细信息,请参见license.md文件