我有一个由搜寻器创建的表,该表指向s3中存储的某些镶木地板文件。从Glue数据目录GUI中,我可以看到许多字段(53)。
当我打开ETL开发人员端点并连接到sagemaker笔记本,加载相同的表并运行printSchema时,使用下面的代码,我看到的字段数少得多(36)。
B
仅返回36个字段。谁能告诉我如何访问缺少的字段?它似乎最常发生在稀疏的字段上。
编辑:This unanswered question在AWS论坛上似乎是由于相同的问题-显然PySpark试图推断自己的模式,而不是使用搜寻器发现的模式。
答案 0 :(得分:0)
您是否尝试过.create_dynamic_frame.from_options
并直接从s3存储桶中读取?有时,其行为与Crawler不同。
答案 1 :(得分:0)
对于镶木地板文件,Glue使用Spark的阅读器,因此依赖于从文件继承的架构,而不是使用搜寻器创建的数据目录中的架构。
如果源文件夹中的文件具有不同的架构,则Glue搜寻器会将其合并为一个架构,这使其与您在ETL中看到的架构有所不同。
答案 2 :(得分:0)
您是否曾尝试在Crawler的“输出->配置选项(可选)”部分中尝试“使用表中的元数据更新所有新分区和现有分区”?