可以将哪些选项传递给 AWS Glue DynamicFrame.toDF()?

Posted

技术标签:

【中文标题】可以将哪些选项传递给 AWS Glue DynamicFrame.toDF()?【英文标题】:What options can be passed to AWS Glue DynamicFrame.toDF()? 【发布时间】:2021-01-20 17:09:15 【问题描述】:

toDF() 方法的文档指定我们可以将选项参数传递给该方法。但它没有指定这些选项可以是什么 (https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-extensions-dynamic-frame.html)。有谁知道这方面是否有进一步的文件? 在从 DynamicFrame 创建 DataFrame 时,我对传入架构特别感兴趣。

【问题讨论】:

【参考方案1】:

遗憾的是,没有太多可用的文档,但对dynamicframe 源代码的研发和分析表明如下:

toDF 中可用的选项更多地与 ResolveOption 类有关,然后是 toDF 本身,因为 ResolveOption 类为参数添加了含义(请阅读代码)。 ResolveOption 类接受 ChoiceType 作为参数。 文档中提供的选项示例类似于ResolveChoice 中提供的specs,也提到了ChoiceType。 选项被进一步转换为序列并引用来自 _jdf here 的 toDF 函数。

看到 spark 中的 specs、toDF 实现 dynamicFrame 和 toDF 后,我的理解是,在从 DynamicFrame 创建 DataFrame 时,我们无法传递架构,但只能进行较小的列操作。

这么说,一种可能的方法是从动态帧中获取数据帧,然后对其进行操作以更改其架构。

【讨论】:

以上是关于可以将哪些选项传递给 AWS Glue DynamicFrame.toDF()?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue 作业输入参数

AWS SAM 可以管理哪些服务?

如何将 PySpark / AWS Glue 中 RDD 的所有行加入/连接/合并成一条长线?

AWS Glue,加载到框架之前的数据过滤,命名 s3 对象

通过 AWS Glue 执行 Redshift 过程

我们可以将 AWS Glue 视为 EMR 的替代品吗?