AWS Glue ETL作业缺少对搜寻器可见的字段

时间:2018-12-12 13:38:56

标签: python amazon-web-services pyspark aws-glue

我有一个由搜寻器创建的表,该表指向s3中存储的某些镶木地板文件。从Glue数据目录GUI中,我可以看到许多字段(53)。

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

B

仅返回36个字段。谁能告诉我如何访问缺少的字段?它似乎最常发生在稀疏的字段上。

编辑:This unanswered question在AWS论坛上似乎是由于相同的问题-显然PySpark试图推断自己的模式,而不是使用搜寻器发现的模式。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

如果源文件夹中的文件具有不同的架构,则Glue搜寻器会将其合并为一个架构,这使其与您在ETL中看到的架构有所不同。

答案 2 :(得分:0)

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