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不支持ArrayList。clear()方法释放内存?   java有一种保持测试的方法。Bat文件打开并运行其余的代码?   java XMLSocketReceiver和SocketReceiver是如何工作的?   Java ArrayList StringBuilder附加   java Jsoup从html表中提取数据   java JAXB通用XmlAdapter实现   java在半秒钟后更新JLabel中包含的图片   java如何在组织中打印整个标记结构。jdom。文档对象?   java我的公共int没有使用正确的参数,我的调用是否错误?   mysql与Java Rest Webservice的手动数据库连接(jersey)   java这个同步代码是如何中断的?   java试图在关闭的EntityManager上执行操作(在命名查询上调用setParameter()函数时)   java在使用流生成映射时忽略重复项   java使用整数创建日期并显示在文本框中   java在运行时动态更改类字段的注释