首页 > 解决方案 > 如何指定显式架构 AWS Glue PySpark 并使用书签

问题描述

阅读 AWS Glue Python ETL 文档时,我不知道在使用以下 DynamicFrameReder 类并从 s3 读取 json 文件时是否有办法提供显式架构:

create_dynamic_frame_from_options()

此外,Bookmarking 是否需要使用上面指定的 DynamicFrameReader 类?

我问这个的原因是我总是可以使用 vanilla PySpark 阅读并以这种方式传递模式,但我不完全确定 Bookmarking 是否可以在不使用 Glue 函数的情况下工作。

标签: amazon-web-servicespysparkaws-glue

解决方案


到目前为止,我已经连续 1 个月在此工作。鉴于您需要:

  • 使用书签功能
  • 并从 s3 获取没有标头信息的数据

很抱歉你陷入了死胡同。在读取 csv 或 json 文件甚至事后(使用 Glue API)时,没有添加模式的选项。如果这不再是真的,请发表评论

正如@Aida Martinez 提到的,您可以使用爬虫创建模式(表),或者从 Glue 控制台手动创建表,或者从 Athena 运行“创建表...”脚本。

与@Aid Martinez 的评论相反,我相信如果您从 Kafka Connect 获取文件,那么书签将起作用,因为 s3 上的文件将带有创建/修改日期的时间戳。并且 Glue 书签会将其作为默认书签键,只要您设置了 transformation_ctx,就可以添加书签。


推荐阅读