首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS Glue ETL作业缺少crawler可见的字段

AWS Glue ETL作业缺少crawler可见的字段
EN

Stack Overflow用户
提问于 2018-12-12 21:38:56
回答 3查看 725关注 0票数 2

我有一个由爬虫创建的表,指向存储在s3中的一些拼图文件。从Glue data catalogue GUI中,我可以看到许多字段(53)。

当我打开一个ETL dev端点并连接到一个sagemaker笔记本,加载相同的表并运行printSchema时,我看到使用以下代码的字段(36)要少得多。

代码语言:javascript
运行
复制
from pyspark.context import SparkContext
from awsglue.context import GlueContext, DynamicFrame

# Get the right stuff
glueContext = 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个字段。谁能告诉我如何访问缺少的字段?这似乎最常发生在填充稀疏的字段上。

编辑:亚马逊网络服务论坛上的This unanswered question似乎是由于同样的问题-显然PySpark试图推断自己的模式,而不是使用爬虫找到的模式。

EN

回答 3

Stack Overflow用户

发布于 2018-12-19 13:14:05

对于拼图文件,Glue使用Spark的阅读器,因此依赖于从文件继承的模式,而不是使用crawler创建的Data Catalog中的模式。

如果源文件夹包含具有不同模式的文件,那么Glue crawler会将其合并到一个模式中,这使得它与您在ETL中看到的模式不同。

票数 1
EN

Stack Overflow用户

发布于 2018-12-15 03:08:33

你有没有尝试过直接从s3存储桶中读取.create_dynamic_frame.from_options?有时,它的行为与Crawler不同。

票数 0
EN

Stack Overflow用户

发布于 2018-12-26 14:43:49

您是否尝试过在Crawler的“Output -> Configuration options (Optional)”部分中使用表中的元数据更新所有新的和现有的分区?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53744329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档