AWS数据池的生产力

pandasglue的Python项目详细描述


反对意见:此项目仅为概念验证目的而创建。该项目的生产就绪版本收到了aws data wrangler的名称(pip install awswrangler)。

请考虑前进到:


代码样式:黑色

潘达斯胶

使用广泛使用的pandas库和aws glue catalog的强大功能创建lite etl的python库。

使用pandasglue,您将能够用一行代码对aws数据池进行读/写操作。PandasGlue具有极简的特性,它的界面只有两个功能:

<表><广告>功能 从到< /广告><正文>写入胶水()熊猫数据框 AWS胶水台 读取"胶水"AWS胶接 熊猫数据框

一旦您的数据被映射到aws glue catalog,许多其他工具(如aws redshift spectrum)都可以访问它。aws athenaaws glue jobsaws emrspark配置单元prestodb)等。

亚马逊胶水是一种简单、灵活的以及经济高效的etl服务,pandas是一个python库,提供高性能、易用的数据结构和数据分析工具。

此软件包的目标是帮助数据工程师使用经济高效的无服务器计算服务(lambdaglue,为了提供一种将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配置文件(可选)

HR/>

写入方法:

写入胶水()

将给定的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文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate:合并并删除,而不是从数据库中删除实体对象   java如何在WebFilter中有条件地从Mono返回?   java调用mysql c3p0函数   可执行jar Java jar文件加载错误:无法找到或加载主类。类导致的错误:java。lang.ClassNotFoundException:某些东西。班   java如何减少/更改爬网后的延迟?   从其他语言(如Java、PHP、Perl、Python等)调用C/C++代码的最佳方式是什么?   java如何模拟影响对象的void返回方法   当我试图在ubuntu上启动JavaScala时,它抛出了一个异常   java如何正确输出游戏   理解java和C++背景下的JavaScript原型   oracle如何将Java函数转换为postgresql函数   多线程为什么我的java服务器程序在超时后不退出?   java如何使listView中的按钮在单击时工作?   试图将这个嵌套的java forloop转换为python,但我不知道如何转换。有没有一种方法可以像这样为循环执行if语句?   java幂函数在计算器中的应用   如何在java中滚动浏览mysql数据库   在Spring Boot应用程序的JUnit测试中,java没有符合自动连线JPA存储库要求的bean   java如何使用扩展类的JPanel对象?