amazon-web-services - 如何指定显式架构 AWS Glue PySpark 并使用书签
问题描述
阅读 AWS Glue Python ETL 文档时,我不知道在使用以下 DynamicFrameReder 类并从 s3 读取 json 文件时是否有办法提供显式架构:
create_dynamic_frame_from_options()
此外,Bookmarking 是否需要使用上面指定的 DynamicFrameReader 类?
我问这个的原因是我总是可以使用 vanilla PySpark 阅读并以这种方式传递模式,但我不完全确定 Bookmarking 是否可以在不使用 Glue 函数的情况下工作。
解决方案
到目前为止,我已经连续 1 个月在此工作。鉴于您需要:
- 使用书签功能
- 并从 s3 获取没有标头信息的数据
很抱歉你陷入了死胡同。在读取 csv 或 json 文件甚至事后(使用 Glue API)时,没有添加模式的选项。如果这不再是真的,请发表评论
正如@Aida Martinez 提到的,您可以使用爬虫创建模式(表),或者从 Glue 控制台手动创建表,或者从 Athena 运行“创建表...”脚本。
与@Aid Martinez 的评论相反,我相信如果您从 Kafka Connect 获取文件,那么书签将起作用,因为 s3 上的文件将带有创建/修改日期的时间戳。并且 Glue 书签会将其作为默认书签键,只要您设置了 transformation_ctx,就可以添加书签。