为了账号安全,请及时绑定邮箱和手机立即绑定

AWS Glue ETL 作业缺少爬网程序可见的字段

AWS Glue ETL 作业缺少爬网程序可见的字段

白猪掌柜的 2021-09-14 20:48:16
我有一个由爬虫创建的表,指向存储在 s3 中的一些镶木地板文件。从 Glue 数据目录 GUI 中,我可以看到许多字段 (53)。当我打开一个 ETL 开发端点并与一个 sagemaker 笔记本连接,加载同一个表并运行 printSchema 时,我看到使用下面的代码少得多的字段 (36)。from pyspark.context import SparkContextfrom awsglue.context import GlueContext, DynamicFrame# Get the right stuffglueContext = GlueContext(SparkContext.getOrCreate())data = glueContext.create_dynamic_frame.from_catalog(database = "my_database", table_name = "my_table")print('Fields: ', len(data.schema().fields))data.printSchema()仅返回 36 个字段。谁能告诉我如何访问缺少的字段?它似乎最常发生在人口稀少的领域。编辑:AWS 论坛上这个悬而未决的问题似乎是由于同样的问题 - 显然 PySpark 试图推断它自己的架构,而不是使用爬虫发现的架构。
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

对于镶木地板文件,Glue 使用 Spark 的阅读器,因此依赖于从文件继承的架构,而不是使用爬虫创建的数据目录中的架构。

如果源文件夹包含具有不同架构的文件,则 Glue 爬网程序会将其合并为一个架构,使其与您在 ETL 中看到的架构不同。


查看完整回答
反对 回复 2021-09-14
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

您是否尝试过.create_dynamic_frame.from_options直接从 s3 存储桶读取?有时它的行为与 Crawler 不同。


查看完整回答
反对 回复 2021-09-14
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您是否尝试过在 Crawler 的“输出 -> 配置选项(可选)”部分中“使用表中的元数据更新所有新的和现有的分区”?


查看完整回答
反对 回复 2021-09-14
  • 3 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号