构建到AWS Glue ETL库的Python接口以用作本地依赖项。
awsglue-local的Python项目详细描述
奥斯格勒
awsglue Python包包含AWS Glue库的Python部分。这个库扩展了PySpark,以支持AWS上的无服务器ETL。在
请注意,此包必须与AWS Glue服务一起使用,并且不能独立执行。许多类和方法使用Py4J库与Glue平台上可用的代码进行接口。这个存储库可以用作编写粘合脚本的参考和帮助。在
虽然使用这个库的脚本只能在AWS Glue服务上运行,但是可以在本地导入这个库。例如,这可能有助于在IDE中提供自动完成。要成功导入库,您需要安装PySpark,这可以使用pip完成:
pip install pyspark
内容
这个包包含到AWS Glue中使用的关键数据结构和方法的Python接口。以下是一些重要的模块。更多信息可以在公共文档中找到。在
GlueContext
文件context.py包含GlueContext类。GlueContext扩展了PySpark的SQLContext类,以提供特定于Glue的操作。大多数Glue程序将从实例化GlueContext开始,并使用它来构造一个DynamicFrame。在
动态帧
在dynamicframe.py中定义的DynamicFrame是胶水脚本中使用的核心数据结构。dynamicframe与sparksql的DataFrames相似,因为它们表示分布式的数据记录集合,但是dynamicframe提供了更灵活的处理模式不一致的数据集。通过以自描述的方式表示记录,可以使用这些记录,而无需预先指定模式或需要昂贵的模式推理步骤。在
dynamicframe支持许多操作,但也可以使用toDF
方法将它们转换为数据帧,以利用现有的Spark SQL操作。在
变换
transforms目录包含可以在dynamicframe上执行的各种操作。这些操作包括简单的操作,如DropFields
,以及更复杂的转换,如Relationalize
,它将嵌套的数据集展平到可以加载到关系数据库的表集合中。导入后,可以使用以下语法调用转换:
额外资源
- 在
aws-glue-samples存储库包含使用awsglue库的示例脚本,可以直接提交给AWS Glue服务。在
在 - 在
public Glue Documentation包含有关AWS Glue服务的信息以及关于Python库的附加信息。在
在
- 项目
标签: